ホームページ  >  記事  >  運用・保守  >  Linuxにはどのようなモジュールがありますか?

Linuxにはどのようなモジュールがありますか?

青灯夜游
青灯夜游オリジナル
2022-04-14 18:42:073743ブラウズ

Linux には 5 つの主要なモジュールがあります: 1. プロセス スケジューリング モジュール (主にプロセスで使用されるプロセッサの管理と制御に使用されます); 2. プロセス間通信モジュール (主にプロセスの制御に使用されます)ユーザー空間内の異なるプロセス間の同期、データ共有と交換、3. 高度な仮想ストレージ機構を使用してマルチプロセスのストレージ管理を実現するメモリ管理モジュール、4. ファイルシステムモジュールなど。

Linuxにはどのようなモジュールがありますか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux カーネルには、プロセス スケジューリング モジュール、プロセス間通信モジュール、メモリ管理モジュール、ファイル システム モジュール、およびネットワーク インターフェイス モジュールの 5 つの主要なサブモジュールが含まれています。

Linuxにはどのようなモジュールがありますか?

1. プロセス スケジューリング モジュール

Linux はシステム リソース割り当ての基本単位としてプロセスを使用します。動的優先プロセスの高度なアルゴリズムを採用し、プロセッサを使用する各プロセスの合理性を確保します。プロセス スケジューリング モジュールは、主にプロセスで使用されるプロセッサを管理および制御します。

【プロセス作成】:

Linux 環境でプログラミングする場合、一般的に fork()/vfork() 関数を使用します (fork子プロセスを作成し、親プロセスのメモリ データを子プロセスにコピーします。vfork は子プロセスを作成し、) を使用して親プロセスのメモリ データを共有し、新しいプロセスを作成します。 、つまりユーザー空間関数内にある場合、カーネルで clone() システム コールが呼び出され、clone() 関数は引き続き do_fork() を呼び出してプロセスの作成を完了します。

fork()/vfork()/_clone--->clone()--->do_fork()--->copy_process()

【プロセスのキャンセル】:

プロセスが終了した後、カーネルがプロセスが所有するリソースを解放できるように、カーネルに通知する必要があります。メモリ、開いているファイルなど、セマフォなどのリソース。プロセスを終了する一般的な方法は、exit() ライブラリ関数 を呼び出すことです。これにより、C 関数ライブラリによって割り当てられたリソースが解放され、プログラマによって登録された各関数が実行され、システム コールが終了します。システムからの処理です。

【プロセス切り替え】:

プロセス切り替えは、タスク切り替え、コンテキスト切り替えとも呼ばれます。これは、プロセスの実行を制御するために、カーネルが CPU 上で現在実行中のプロセスを一時停止し、以前に一時停止されたプロセスの実行を再開する動作です。
本質的に、各プロセスの切り替えは 2 つの部分で構成されます:

  • ページのグローバル ディレクトリを切り替えて新しいアドレス空間をインストールします;
  • カーネル モード スタックを切り替えますそしてハードウェア コンテキストは、主に switch_to() 関数によって完了される CPU レジスタなど、新しいプロセスを実行するためにカーネルが必要とするすべての情報を提供するためです。

【プロセス スケジューリング】:

最新の Linux では、(実行可能ファイルの数に関係なく) 一定時間内でスケジューリング アルゴリズムを選択できます。プロセス) 実行するプロセス。まず第一に、プロセスは リアルタイム プロセスと通常のプロセス に分類できることを知っておく必要があります。各 LInux プロセスは常に、次のスケジューリング タイプに従ってスケジュールされます: 先入れ先出しリアルタイム プロセス、タイム スライス回転リアルタイム プロセス、通常のタイムシェアリング プロセス。スケジューリングアルゴリズムは、プロセスが通常プロセスかリアルタイムプロセスかによって大きく異なります。


# 2. プロセス間通信モジュール

# プロセス間通信は、主にプロセス間のユーザー空間を制御するために使用されます。さまざまなプロセスの同期、データの共有、交換。ユーザープロセスが異なればプロセス空間も異なるため、プロセス間の通信はカーネルリレーを利用して実現する必要があります。通常、プロセスは、ハードウェア操作が完了するのを待っている間、一時停止されます。ハードウェア操作が完了すると、プロセスが再開されます。このプロセスを調整するのがプロセス間通信メカニズムです。

プロセス間通信モジュールにより、Linux は次のようなさまざまなプロセス間通信メカニズムをサポートします。パイプ、名前付きパイプ、メッセージ キュー、セマフォ、共有メモリなど。


3. メモリ管理モジュール

Linux のメモリ管理モジュールは、高度な

仮想ストレージメカニズムを採用しています。 . 複数プロセスのストレージ管理を実装します。非常に信頼性の高いストレージ保護手段を提供し、プロセスにさまざまな権限を付与するため、ユーザーはシステムのプログラムやデータに直接アクセスできないため、システムのセキュリティが確保されます。同時に、各ユーザープロセスには独立した仮想アドレス空間が割り当てられます。


4. ファイル システム モジュール

Linux のファイル システム モジュールは、高度な

仮想ファイル システム (VFS) テクノロジーを採用しています。 は、さまざまなファイル システム間の差異を保護し、さまざまな異なるファイル システムを処理するための統一インターフェイスを提供し、90 を超える異なる物理ファイル システムをサポートします。同時に、Linux はさまざまなハードウェア デバイスを特別なファイルとして扱い、ファイルと同じ方法でデバイスを管理するため、非常に便利で効果的です。


5. ネットワークインターフェースモジュール

Linux は最も強力なネットワーク機能を持っています。ネットワーク インターフェイス モジュールは、Socket (ソケット) メカニズムを介してコンピューター間のネットワーク通信を実装し、ネットワーク層モデルを使用して複数のネットワーク プロトコルとネットワーク ハードウェア デバイスのサポートを提供します。

ネットワーク インターフェイスは、さまざまなネットワーク標準の実装と、さまざまなネットワーク ハードウェアのサポートを提供します。ネットワーク インターフェイスは通常、ネットワーク プロトコルとネットワーク ドライバーに分かれています。ネットワーク プロトコル部分は、考えられるすべてのネットワーク トランスポート プロトコルの実装を担当します。ネットワーク デバイス ドライバーは、主にハードウェア デバイスとの通信を担当します。すべてのネットワーク ハードウェア デバイスには、対応するデバイス ドライバーがあります。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxにはどのようなモジュールがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。