カーネルの学習については、カーネルを読むのではなく、カーネルの構成や特徴を理解し、考えながら疑問点を見つけてからカーネルのソースコードを読むことをお勧めします。つまり、まず概要を理解してから、ローカルの詳細を読んでください。
そして、カーネルは多くの部分に分かれています。順番に読むだけではなく、次の部分に焦点を当てる必要があります。メモリ管理やプロセス管理などの特定の部分を理解するには、数冊の本を横に読んでください。
Linux カーネル四全書 (推奨学習: linux の運用と保守 )
1.「Linux カーネル」設計と実装>>
本書は原則に焦点を当てています。始めるのに最適な本。著者はカーネル 2.6 にプリエンプションを追加した人で、スケジューリング部分に非常に長けており、スケジューリングはシステム全体の核となるため、この本は非常に権威があります。
2. 「Linux カーネルの詳細な理解」
この本には、前の本よりも詳細な内容が記載されています。 Linux カーネル ハッカーが本を勧めるときに最初に選ぶのはこの本です。記述は比較的単純で理解しやすく、LINUX カーネルを初めて使用する人に適しています。
本書は多くの図を用いて、主要なデータ構造の定義を生き生きと解説しています。『Linux カーネル ソース コード シナリオ分析』と比較すると、本書の内容はコンパクトであり、1 つの質問の説明にはそれほど時間がかかりません。概要は便利ですが、深さは『Linux カーネル ソースコード シナリオ分析』には劣ります。
3.「LINUX デバイス ドライバー (第 3 版)」
本書は実践的な実践に重点を置いています。ただし、核心ではなく「デバイスドライバ」についての説明であり、ハードウェアがないと実践できない部分もあります。ドライバを開発するプログラマ向けの内容かもしれません。同期、排他、メモリ割り当てなどの部分は非常に充実しています。
4. 『Linux カーネル ソース コード シナリオ分析』
は、浙江大学の Mao Decao 教授によって書かれた、非常に古典的な非常に優れた本です。残念ながら、 2001 年以降出版されていません。更新します。 2巻に分かれています。
多くの説明は 2.4 カーネルに基づいているため、注意が必要です。勉強したい場合は、2.6 も勉強することをお勧めします。2.6 では 2.4 に比べて大幅な改善が行われているため、勉強するとよいでしょう。
本の内容は広く奥深く、決して分かりやすいものではありませんが、細部までしっかりと解説されています。ただ、全体的に芯の強さが足りないような気がします。また、ネットワーク部分の解析が不足しています。初心者にはあまり向かないと思います。
第 1 巻ではメモリ管理、割り込み、例外とシステム コール、プロセス制御、ファイル システム、従来の Unix IPC について説明し、第 2 巻ではソケット、デバイス ドライバー、SMP、ブートについて説明します。
本書はインテル IA32 システムをベースにしていますが、分厚いため、付随的にシステム知識が多く解説されていますので、カーネルの動作の仕組みを深く理解したい場合は、 Intel CPU のシステム構造についてはよく知らないけど、この本は最適です。
以上がLinuxカーネルを学ぶ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。