私はどのようにしてLinuxカーネルを学んだかを読んだ
August 10, 2019
kernel hack病
ふと思いたって, kernelのソースを読もうとすることが年に数回あるが続いた試しがない…
こんな経験ありませんか?
カーネルリーディングには戦略が必要であるというのが “私はどのようにしてLinuxカーネルを学んだか” という電子書籍の主張です.
kernelを読んでいる人が周りにいれば, 必要な知識などを網羅的に説明してくれるのでしょうが, なかなかそんな人はいないし, あまりネットでもカーネルリーディングを丁寧に説明してくれているサイトはないですよね.
この本は, カーネルを読むために必要な(最低限の)知識を優しく教えてくれます.
“私はどのようにしてLinuxカーネルを学んだか”の概略
kernelの動きを理解するためには
- ハードウェア(主にx86)のしくみ
- システムプログラミング
- C言語拡張
- メモリ空間の違い(ユーザー空間とカーネル空間)
これらがキーポイントとなっているという著者の主張は, ぼく自身の経験からも頷かせるものがありました.
またぼくは仮想メモリの仕組み周りの理解が怪しかったので, 丁寧な図解が嬉しいポイントでした.
C言語のcalling convensionを巧みに利用したプロセス切り換えの仕組みも コードだけでは絶対理解できない内容を丁寧に説明してくれていて, 目から鱗が落ちました.
tagジャンプの設定やカーネルのビルド等も丁寧に説明してくれているのですが, 個人的にはそれらよりは, ググってもででこない情報をもうちょっと知りたい気持ちがありましたね…
kernel hackingがんばる!
機を見てデバイスドライバ等の実装にチャレンジしてみたいと思います.