Windows、Mac、Linux、Android など、すべてのオペレーティング システムには、カーネルシステム全体の「ボス」として機能します。それはOSの心臓部です!カーネルは、他のすべてを制御するコンピューター プログラムに他なりません。コンピューター上で起こることはすべてコンピューターを通過します。この記事では、OS におけるカーネルとは何か、およびさまざまな種類のカーネルについて説明します。
OSのカーネルとは何ですか
これが OS のコア プログラムであることがわかったので、ブートローダーの後に読み込まれる最初のプログラムでもあることも知っておく必要があります。その後、ハードウェアとソフトウェアまたはアプリケーション間のすべての通信を行います。したがって、プログラムを起動すると、ユーザー インターフェイスはカーネルにリクエストを送信します。次に、カーネルは CPU、メモリにリクエストを送信して、処理能力、メモリ、その他のものを割り当て、アプリケーションがフロントエンドでスムーズに実行できるようにします。
カーネルを翻訳者として想像してみてください。ソフトウェアからの入出力リクエストを CPU および GPU の命令セットに変換します。簡単に言うと、すべてを可能にするソフトウェアとハードウェアの間の層です。カーネルは以下を管理します。
- CPU/GPU
- メモリ
- 入出力またはIOデバイス
- リソース管理
- メモリ管理
- デバイス管理
- システムコール。
ユーザー プロセスは、システム コールを使用することによってのみカーネル空間にアクセスできます。プログラムが直接アクセスしようとすると、エラーが発生します。
カーネルのセキュリティと保護
カーネルはハードウェアも保護します。保護がない場合、あらゆるプログラムがコンピュータ上でコンピュータのクラッシュやデータの破損などのあらゆるタスクを実行できるようになります。
現代のコンピューターでは、セキュリティはハードウェア レベルで実装されています。たとえば、Windows は、信頼できるソースから提供されておらず、署名を使用して認証されていないドライバーをロードしません。セキュアブートとトラステッドブートは古典的な例です。
- セキュアブート:これは、PC 業界のメンバーによって開発されたセキュリティ標準です。システムの起動プロセス中に無許可のアプリケーションの実行を許可しないため、悪意のあるプログラムからシステムを保護できます。この機能により、PC メーカーが信頼するソフトウェアのみを使用して PC が起動するようになります。そのため、PC が起動するたびに、ファームウェアはファームウェア ドライバー (オプション ROM) やオペレーティング システムを含むブート ソフトウェアの各部分の署名をチェックします。署名が検証されると、PC が起動し、ファームウェアがオペレーティング システムに制御を与えます。
- トラステッドブート:仮想を使用しますトラステッドプラットフォームモジュール(VTPM) を使用して、Windows 10 カーネルをロードする前にそのデジタル署名を検証します。次に、ブート ドライバー、起動ファイル、ELAM など、Windows 起動プロセスの他のすべてのコンポーネントを確認します。ファイルが変更またはある程度変更されている場合、ブートローダーはそれを検出し、破損したコンポーネントとして認識してファイルのロードを拒否します。つまり、ブート中にすべての要素に対して信頼のチェーンを提供します。
カーネルの種類は何ですか
カーネルは安全な回線でハードウェアと通信することもできます。したがって、企業は一連のボタンを通じてハードウェアと通信できるカーネルを開発できます。洗濯機を例に考えてみましょう。移動するノブと設定する時間によっては、基本レベルのカーネルで十分です。とはいえ、カーネル自体は時間の経過とともに複雑になり、その結果、カーネルの種類が決まります。
- モノリシックカーネル:ここでは、OS とカーネルは両方とも同じメモリ空間で実行され、セキュリティが重大な懸念事項ではない場合に適しています。アクセスは高速になりますが、デバイス ドライバーにバグがあるとシステム全体がクラッシュします。
- マイクロカーネル:これはモノリシック カーネルの必要最低限のバージョンであり、カーネル自体でほとんどの作業を行うことができ、追加の GUI は必要ありません。これらは、セキュリティやシステムのクラッシュが発生しない、または発生しない場所で使用する必要があります。
- ハイブリッド カーネル:このカーネルは私たちが最も目にするものです。 Windows、AppleのmacOS。これらはモノリシック カーネルとマイクロカーネルを組み合わせたものです。ドライバーを外部に移動しますが、システム サービスはカーネル内に保持されます。これは、ドライバーがロードされる際の方法と同様です。Windows 起動プロセスを開始します。
- ナノカーネル:カーネルが必要だが、その機能の大部分が外部でセットアップされている場合、これが問題になります。
- Exo カーネル:このカーネルは、プロセス保護とリソース処理のみを提供します。ただし、これは主に社内プロジェクトをテストし、より優れたカーネル タイプにアップグレードするときに使用されます。
カーネルには、これまで説明したこと以外にもたくさんの機能があります。深く掘り下げていくと、カーネルの定義はより広く、より深くなります。
この投稿が理解しやすく、基本を理解するのに役立つことを願っています。
次に読む:Linux カーネルの対話型マップ。