Linuxカーネルを中心に、プロセス、メモリ、ネットワークが行き交う都市の図

歴史としくみを学ぶ図解 Linuxカーネル

カーネルがCPU、メモリ、デバイスをどう管理するのか。
歴史と現在の仕組みを、分野ごとの図でたどります。

章を選ぶ ↓
00

知りたい場所から始める

分野を選ぶ

01

歴史とリリース

1991年の0.01からLinux 7.2まで。開発周期と、歴史に残る脆弱性も追います。

開く →
02

ユーザー空間とカーネル空間

プログラムを安全に実行するために、アプリとLinuxカーネルが使う領域を分ける仕組みを学びます。

開く →
03

プログラムの実行単位とCPUの割り当て

プロセス、スレッド、タスクの関係と、CPUへ割り当てる仕組みを学びます。

開く →
04

I/Oを待つ仕組み

データを待つスレッドと、select、poll、epoll、io_uringの役割を追います。

開く →
05

メモリ管理

仮想アドレス、ページフォールト、page cache、reclaimの流れを追います。

開く →
06

Linuxの仮想化技術

異なるOSを動かすために、CPU、メモリ、I/Oを分ける仕組みを学びます。

開く →
07

namespaceとcgroup

同じカーネル上で、プロセスから見える状態とCPU・メモリの使用量を分けます。

開く →
08

CRIUとcheckpoint/restore

動いているプロセスを保存し、同じ状態から再開する流れを追います。

開く →
09

アクセス制御とカーネル防御

プロセスの権限確認、seccompとLSM、カーネル内の攻撃緩和を追います。

開く →
10

systemdとPID 1

最初のプロセスが、cgroup、socket、namespace、seccompなどを使ってサービスを管理する流れを追います。

開く →
11

企業と開発者

機能の背景と、日本企業が関わった時期・領域を資料からたどります。

開く →
12

用語集

難しい用語を短い説明から探せます。各ページの強調語からも移動できます。

開く →
13

出典

本文と企業史の確認に使った一次資料をまとめています。

開く →