コンピューティングでは、カーネルとは何ですか?
ほとんどのコンピューターオペレーティングシステムでは、カーネルが中心的なコンポーネントです。 これは、ユーザーとアプリケーション、およびコンピューターハードウェア間の橋渡しです。 また、コンピューターが複数のユーザーと複数のタスクを同時に処理できるようにするメカニズムでもあります。 カーネルのタイプは、モノリシックカーネル、マイクロカーネル、ハイブリッドカーネル、ナノカーネル、エキソカーネルです。
カーネルは、コンピューターのすべてのシステムリソースを管理します。 これには、長期保存、中央処理装置(CPU)、短期メモリ、および入出力デバイスが含まれます。 アプリケーションがこれらのリソースのいずれかを必要とするとき、カーネルはリソースを利用可能にし、リクエストを完了します。
このリソースの処理により、オペレーティングシステムをマルチユーザーとマルチタスクの両方にすることができます。 オペレーティングシステムは、実際には一度に複数のタスクを実行しません。 代わりに、カーネルは、コンピューターが複数のタスクを実行しているように見えるほど高速でタスクを切り替えます。 また、カーネルは、あるユーザーまたはプロセスが使用するリソースが別のユーザーまたはプロセスの要求に違反しないようにする責任があります。
カーネルには、モノリシックカーネルとマイクロカーネルの2つの主なタイプがあります。 モノリシックカーネルは、すべてのオペレーティングシステムサービスがカーネル空間と呼ばれる同じアドレス空間で実行されるリソース管理の監視方法を採用しています。 一部のモノリシックカーネルは、実行可能モジュールをロードおよびアンロードできます。 これにより、オペレーティングシステムの機能が拡張されると同時に、カーネル空間で実行されるコードの最小量が常に維持されます。
マイクロカーネルは、カーネル空間でのメモリ管理、スレッド管理、プロセス間通信など、最小限のオペレーティングシステムサービスのみを実行します。 デバイスドライバー、ユーザーインターフェイス、ファイル管理などの他のすべてのサービスは、ユーザー空間で実行されます。 マイクロカーネルは、カーネルモードで実行されるコードの量を大幅に最小化します。
ハイブリッドカーネルは、モノリシックカーネルとマイクロカーネルの組み合わせです。 オペレーティングシステムのシステムサービスのほとんどは、モノリシックカーネルのようにカーネル空間で実行されます。 ユーザー空間で実行されるファイルシステムやウィンドウシステムなど、他のサービスがあります。
他のカーネルタイプは、nanokernelとexokernelです。 ナノカーネルは、デバイスドライバーを使用して、ほぼすべてのサービスを処理します。 exokernelは、プログラムを使用して物理リソースを割り当てます。