Linux において、カーネル モジュールとは、Linux カーネルが外部に提供するソケットであり、カーネル モジュールは、個別にコンパイルすることはできますが、単独で実行することはできない独立した機能を備えたプログラムです。カーネルまたは他のカーネル モジュールによって使用される機能コード ブロック。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
カーネル モジュールは、Linux カーネルが外部に提供するソケットであり、正式名は動的にロード可能なカーネル モジュール (Loadable Kernel Module、LKM) です。 . 略してモジュールと呼びます。 Linux カーネルがモジュール機構を提供する理由は、Linux カーネルがモノリシック カーネルであるためです。シングルコアの最大の利点はすべてが統合されているため効率が高いことですが、欠点は拡張性や保守性が比較的悪いことであり、それを補うのがモジュール機構です。
モジュールは独立した機能を持つプログラムであり、個別にコンパイルすることはできますが、独立して実行することはできません。これは実行時にカーネルにリンクされ、カーネルの一部としてカーネル空間で実行されます。これは、ユーザー空間で実行されるプロセスとは異なります。モジュールは通常、ファイル システム、ドライバー、またはその他の上位レベルのカーネル機能を実装する一連の関数とデータ構造で構成されます。
つまり、モジュールは、カーネル (ある意味、カーネルもモジュールです) または他のカーネル モジュールに機能を提供するコードのブロックです。
Linux システムのカーネル モジュールは、必要に応じてカーネルにロードまたはカーネルからアンロードできるコードのブロックであるため、再起動せずにカーネルの機能を拡張できます。ただし、ユーザーが lsmod などのコマンドを使用してモジュール情報を照会しない限り、ユーザーはカーネルへの変更について知ることはできません。
Linux システムでは多くのモジュールが利用可能であり、それらを詳しく調べると多くの詳細を知ることができます。 Linux システム ツール lsmod の主な用途の 1 つは、システムが正常に動作していないときにモジュールをチェックすることです。
1. カーネル モジュールの表示
カーネル モジュールを表示する最も簡単な方法は、lsmod コマンドを使用することです。このコマンドには多くの詳細が含まれていますが、出力は非常にユーザーフレンドリーで、通常は次のように出力されます。
1) Module には各モジュールの名前が表示されます
2) Size には各モジュールのサイズが表示されます。占有するメモリ サイズではなく、各モジュールのサイズです。
3) Used by 各モジュールの使用回数と、それらを使用するモジュールが表示されます。
ロードされるモジュールの数はシステムによって異なります。実行中のコンテンツを表示するには、実行中のモジュールだけでなく、システム内で使用可能なモジュールの数を確認する必要があります。運用コマンド
1) $ modprobe -c | を使用できます。 wc –l
2) 41272
2. カーネル モジュールに関連するその他のコマンド
Linux システムには、リスト、ロード、アンロードのためのいくつかのコマンドが用意されています。 、テスト、およびモジュールのステータスの確認。
1) depmod - modules.dep およびマッピング ファイルを生成します
2) insmod - Linux カーネルにモジュールを挿入するプログラム
3) lsmod - Linux モジュールのステータスを表示しますカーネル内
4) modinfo - Linux カーネル モジュール情報を表示します
5) modprobe - Linux カーネル モジュールを追加または削除します
6)rmmod - モジュールを削除するプログラムLinux カーネル
3. 組み込みカーネル モジュールの表示
エディターが前述したように、lsmod コマンドはカーネル モジュールを表示するのに最も便利なコマンドです。ただし、表示する方法は他にもあります。カーネルに組み込まれているすべてのモジュールは modules.builtin ファイルにリストされます。このファイルは、modprobe コマンドがファイルにモジュールを追加しようとするときに使用されます。
ユーザーは modinfo を使用してモジュールの詳細を取得できますが、モジュールによって提供されるサービスの簡単な説明はありません。また、modprobe コマンドを使用してモジュールをロードまたはアンロードすることもできます。次のコマンドを使用して、特定のモジュールに関連付けられたカーネル オブジェクトを見つけます:
1)$ find /lib/modules/$(uname -r) -name floppy* 2)/lib/modules/5.0.0-13-generic/kernel/drivers/block/floppy.ko
モジュールをロードする場合は、次のコマンドを使用できます: $ sudo modprobe floppy。
明らかに、カーネル モジュールのロードとアンロードは非常に重要です。これにより、Linux システムは、汎用カーネルで実行する場合よりも柔軟で効率的になります。これは、ユーザーがハードウェアの追加など、再起動せずに大きな変更を加えられることも意味します。
関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がLinuxのカーネルモジュールとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。