「Linuxカーネル解読室 再び」とのことで、最新の Linux カーネルコード全体を読み解くプロジェクトが進行中という話を今月知って、おおっとなった。
ワタシが Linux カーネルのソースコードを読み、手を入れていたのはおよそ20年くらい前の話で、(ターゲットが組み込み機器だったので)せいぜいカーネル 2.4 系までだったりする。
Linuxカーネル2.6解読室の執筆を始めたころのLinuxカーネル2.6のコードは600万行程度でしたが、今回解析対象とするカーネル6.8では約3,600万行と6倍ほどのサイズとなっています。カーネルの基本構造は変わっていませんが、スケーラビリティ向上を目的とした数多くの変更が加えられています。
Linuxカーネル解読室 再び - VA Linux エンジニアブログ
とのことで、ワタシがソースをいじっていた頃とは、同じ Linux カーネルといっても、規模がかなーり違うのである。
……と思っていたら、いきなりソケットインターフェースについての解説が始まって、嬉しくなった。
それこそ20年近く前、『Linux Networking Architecture』という本の読書記録にも書いたのだが、かつての『詳解 Linuxカーネル』といった労作に失礼にも不満を持っていたのは、カーネルのネットワーク部のコードについての解説が欲しいという点だった。要は、当時ワタシが触っていたのは、ネットワーク部のコードだけだったんですね。
ここで解説されているのは飽くまでソケットインターフェースであって、ワタシがかつて読みたかったもっと低い層の解説ではないのだけど、上記の通り、20年も離れていて、今更ゴリゴリ読んで理解できるものでもなし、今のワタシにはこういう解説だけでお腹が満たされるのである。
次回のソケット生成編も楽しみである。
