02–10
カーネルの中を分野別に見る
Linuxの仕組み
アプリとカーネルの境界から、CPU、I/O、メモリ、仮想化、プロセスの分離と保存、アクセス制御、サービス管理まで、仕組みごとに整理しています。
02→
ユーザー空間とカーネル空間
プログラムを安全に実行するために、アプリとLinuxカーネルが使う領域を分ける仕組みを学びます。
03→プログラムの実行単位とCPUの割り当て
プロセス、スレッド、タスクの関係と、CPUへ割り当てる仕組みを学びます。
04→I/Oを待つ仕組み
データを待つスレッドと、select、poll、epoll、io_uringの役割を追います。
05→メモリ管理
仮想アドレスを物理RAMへ対応づけ、必要なpageを用意して回収する流れを追います。
06→Linuxの仮想化技術
CPU、メモリ、I/Oを仮想マシンへ割り当てる仕組みを学びます。
07→namespaceとcgroup
仮想マシンと比較しながら、同じカーネル上のプロセス群を分ける仕組みを学びます。
08→CRIUとcheckpoint/restore
動いているプロセスの状態を記録し、同じ状態から再開する流れを追います。
09→アクセス制御とカーネル防御
プロセスの権限を調べる流れと、カーネルを攻撃から守る仕組みを学びます。
10→systemdとPID 1
最初のプロセスが、カーネルの機能を組み合わせてサービスを管理する流れを学びます。