カーネル拡張とは何ですか?
カーネル拡張機能は、オペレーティングシステムの中央コンポーネントに読み込まれるコンピューターソフトウェアの一部です。 カーネル拡張は、そうでなければカーネルの一部ではない機能またはハードウェアサポートを提供するために使用される場合があります。 多くの場合、カーネル拡張機能は、通常のソフトウェアではできないタスクを実行したり、オペレーティングシステムの一部にアクセスしたりできます。 一部のオペレーティングシステムでは、カーネル拡張機能はカーネルモジュールまたは単にモジュールと呼ばれます。
ほとんどのオペレーティングシステムでは、安定した安全なシステムを維持するために、ネットワーク、ファイルシステム、およびシステムコールへのアクセスが制限されています。 カーネル拡張は、カーネルの一部として実行されるため、これらの機能とシステムにアクセスできます。 拡張のないカーネルは、ベースカーネルと呼ばれます。 拡張機能は、ベースカーネルに追加または削除できます。
拡張機能を使用すると、ベースカーネルの複雑さを増やさずに、カーネルの機能の柔軟性を高めることができます。 たとえば、ラップトップコンピュータに適した省電力機能を有効にするために、カーネル拡張がロードされる場合があります。 オペレーティングシステムはラップトップでは使用されない可能性があるため、これらの機能は通常、ベースカーネルには含まれていません。
カーネル拡張またはモジュールは、動的にロードおよびアンロードすることもできます。つまり、必要に応じてカーネルに追加したり、カーネルから削除したりします。 これにより、拡張機能が使用されていないときにコンピューターがメモリやその他のリソースを節約できます。 ユニバーサルシリアルバス(USB)ネットワークアダプターは、プラグイン時に必要なドライバーをカーネル拡張機能としてロードし、デバイスが削除されると拡張機能をアンロードする場合があります。
彼らは他のプログラムよりも多くの権限を持っているので、カーネル拡張とモジュールは独特の問題を引き起こす可能性があります。 カーネル拡張として実行されているデバイスドライバーのコーディングが不十分な場合、システム全体がクラッシュする可能性があります。 このため、ソフトウェア開発者は、代替手段がない場合にのみカーネル拡張機能を使用することが推奨されます。
ほとんどのユーザーにとって、拡張機能の構成は自動的に行われます。 一部のユーザー、特に特定のオペレーティングシステムを使用しているユーザーは、カーネル拡張またはモジュール自体を管理します。 カーネルのバージョンにはバリエーションがあるため、拡張機能とモジュールはすべてのカーネルまたはすべてのオペレーティングシステムと互換性がない場合があります。