Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxカーネルソースコード構造の概要

Linuxカーネルソースコード構造の概要

  

Linuxカーネルソースコードは/usr /src /linuxディレクトリにあり、その構造は図1.3に示されています。各ディレクトリまたはサブディレクトリは、そのディレクトリ間のモジュールと見なすことができます。接続は、サブディレクトリまたはサブモジュールの関係を示します。以下は各ディレクトリの簡単な説明です。


include /サブディレクトリには、カーネルコードの構築に必要なほとんどのインクルードファイルが含まれていますこのモジュールは他のモジュールを使ってカーネルを再構築します。


init /サブディレクトリには、カーネルが動作を開始するための出発点となるカーネル初期化コードが含まれています。


arch /サブディレクトリには、ハードウェア固有のカーネルコードがすべて含まれています(図1.3、arch /サブディレクトリのi386モジュール、alphaモジュールなど)。


drivers /ディレクトリには、ブロックデバイス、scsiデバイスドライバなど、カーネル内のすべてのデバイスドライバが含まれています。

fs /ディレクトリには、ext2、vfatモジュールコードなど、すべてのファイルシステムのコードが含まれています。


net /ディレクトリには、カーネルのネットワークコードが含まれています。


mm /ディレクトリには、すべてのメモリ管理コードが含まれています。


ipc /ディレクトリには、プロセス間通信用のコードが含まれています。


kernel /ディレクトリにはメインカーネルコードが含まれています。


図1.3はinit、kernel、mm、ipc、driversの8つのディレクトリを示しています。 fs、arch、およびnetのインクルードファイルは、 "include /"ディレクトリにあります。 Linuxカーネルにはドライバ、fs、arch、netモジュールが含まれているため、Linuxカーネルは階層構造でもマイクロカーネル構造でもなく、「全体的な」構造にはなりません。システムコールは直接カーネル層を呼び出すことができるため、この構造ではシステム全体のパフォーマンスが向上しますが、厳密な規則やコーディング標準に従わない限り、カーネルの変更は困難です。


図1.3に示すモジュール構造は作業配分単位を表しており、Linus Torvalds氏はカーネルのコアサービスを維持し強化することを期待しています。 init /、kernel /、mm /、ipc /、その他のモジュールドライバ、fs、arch、およびnetも作業単位として使用できますたとえば、ブロックファイルシステムを維持および開発するために1人のグループを割り当てることができます。人々はscsiファイルシステムを完成させます。図1.3は、システム全体のフレームワークを強化および拡張するために協力して取り組むLinuxのボランティア開発チームと似ています。

Copyright © Windowsの知識 All Rights Reserved