この記事では、LPIC201の出題範囲であるカーネルランタイムの管理とトラブルシューティングについての項目の中の管理部分についての概要を解説いたします。
当該試験項目については以下に「weight:4」とある通り、試験範囲の中で特に重点的に
出題される項目なので試験を受ける方にとっては特に意識して勉強しておくべき内容と言えるでしょう。
(weigh:1~4 4がMAX)
201.3 Kernel runtime management and troubleshooting (weight: 4)
貼り付け元 <https://www.lpi.org/our-certifications/exam-201-202-objectives/#Objectives:_Exam_201>
・カーネルについて
改めて、カーネルとはオペレーティングシステムの中核をなすもので非常に多くの役割を担いますが、この記事では主にハードウェアとアプリケーションの橋渡しを行う重要なプログラムとしての役割を解説します。
ハードウェアはすなわち、NICやCPU、物理メモリ、ディスクドライブなどを指します。
アプリケーションが動くには当然これらのハードウェアの機能を利用する必要がありますが
アプリケーションは直接操作することができません。
そこでカーネルがこれらすべてのハードウェアの情報を管理し、各アプリケーションへ適切に情報を渡してアプリケーションがどのデバイスをどのぐらい利用できるか判断したり、
逆にアプリケーションから、新たにメモリの割り当てが必要だとなった際にカーネルに依頼してメモリを要求したりもします。当然なければ渡せませんし、あるのであれば設定に従って渡せる分は渡します。
設定にはデフォルトでシステムが健全に機能するために重要なプロセスはダウンしないように多く割り当てるようにしていますし、それ以外の重要でないプロセスにはあまりリソースを割り当てないような設定があります。
システムによって重要なプログラムは異なるため、ユーザー側が設定することも可能です。
他にも、ファイルシステムの操作を仲介したり、セキュリティポリシーに従ったアクセス制御なども担いますが、長くなるため割愛します。
・カーネルモジュールについて
カーネルモジュールとはカーネルに付属する部品のようなもので
カーネル本体がサポートしていないものをユーザーがカスタマイズして追加することで
使いたい機能を使うことができます。
具体的には、ゲームでよく使われるNVIDIAのGPUであるGeForceなどのデバイスドライバなどはデフォルトでカーネルがサポートしている部分はありますが、RTX3060など追加で構築される高性能なグラフィックボートはサポートしていないため、新たにモジュールとして追加することでカーネルがGPUを操作することができ、結果としてGPUを使ってハイスペックなゲームなどを楽しむことができるようになるのです。
モジュールとして別途ある理由は、これで使わないのであればカーネル本体に組み込まなくて済むため容量の削減に役立てますし、モジュール化することで、モジュールに障害が発生したとしてもカーネルに影響を及ぼさないようにしたりなど必要最小限に組み込むことでシステムのパフォーマンスを最適化する狙いがあります。
他にもファイルシステム関連や、ネットワーク関連、セキュリティ関連モジュールなど多岐にわたります。
以下のコマンドで、現在カーネルにロードされている(使用できる)モジュールを確認することができます。
# lsmod
Module Size Used by
serial_cb 1120 1
tulip_cb 31968 2
cb_enabler 2512 4 [serial_cb tulip_cb]
ds 6384 2 [cb_enabler]
i82365 22384 2
pcmcia_core 50080 0 [cb_enabler ds i82365]
Modlue: モジュール名
Size: モジュールのサイズ(Byte)
Used by: 他のモジュールやプロセスによって参照された回数とその名前
cat /proc/modulesとすることでlsmodと同様にモジュールを参照することができます。
なお、lsmodの方が人間にとって読みやすい形で表示されていますので確認する際は主にlsmodを使用して確認するのがよいでしょう。
他にも、モジュールを新たにロードできる「insmod」や「modeprode」、削除できる「rmmod」などなど、他にもカーネルモジュールを操作できるコマンドなどはありますが長くなりましたので、詳しくは以下のサイトを参考にするとよいかと思います。
英語になりますが、わかりやすく簡潔にそれぞれのコマンドについて解説されております。
Kernel runtime management and troubleshooting (201.3) - The LPIC2 Exam Prep