カーネルはオペレーティングシステムの核であり、アプリケーションとハードウェアの間で動作する部分です。コンピューターのリソース(CPU、メモリ、ストレージ、デバイス)を管理し、ソフトウェアがそれらを利用するための安全で一貫した方法を提供します。衝突なくすべてを円滑に動かす交通整理係であり、翻訳者であると考えることができます。
大まかに言えば、カーネルは:
そうとは言い切れない。「オペレーティングシステム」には通常、カーネルに加えてユーザースペースのツールやサービス(シェル、ライブラリ、デスクトップ環境、バックグラウンドサービスなど)が含まれる。日常会話ではこれらの用語が混同されがちだが、厳密に言えばカーネルは他のすべてが依存する特権的な中核に過ぎない。
アプリがファイルを保存したりネットワークパケットを送信したりする必要がある場合、システムコールを発行します。これはユーザーモードからカーネルモードへ移行する制御された要求です。カーネルは権限を確認し、要求を適切なサブシステムやドライバへルーティングし、結果をアプリへ返します。この境界により、アプリ同士やハードウェアの危険な部分からアプリが保護されます。
はい。いくつかの大まかな設計が議論されているのがわかるでしょう:
これらすべては同じ目標を目指している:ハードウェアの信頼性の高い高速制御である。(例えばAppleのXNUは、MachマイクロカーネルとBSDレイヤーを組み合わせている。Windowsは階層化されたカーネルアーキテクチャを文書化している。)
プラットフォームによって異なります:
更新によりハードウェアサポート、パフォーマンス調整、セキュリティ修正が提供されますが、本番システムでは通常、事前にテストを行います。
非常に簡略化した説明:ファームウェア/UEFIが最初に実行され、ブートローダーがカーネルをメモリにロードします。カーネルはハードウェアとドライバを初期化し、ストレージをマウントした後、残りのシステムを起動する最初のユーザ空間プロセスを起動します。その後、カーネルはバックグラウンドで継続的にタスクをスケジューリングし、I/O処理を管理します。
もちろんです。Androidスマートフォン、ゲーム機、ルーター、スマートテレビのほとんどは、内部でカーネルを備えた何らかのOSを実行しています。この概念はデスクトップやノートパソコンだけに限ったものではありません。
カーネル内部で重大な問題(致命的なドライバエラーなど)が発生した場合、OSはデータ破損のリスクを避けるため、動作を停止することが多い。Unix系システムではカーネルパニックが発生し、Windowsではストップエラー(「ブルースクリーン」)が表示される。劇的な現象だが、これはファイルを保護するための最終的な安全対策である。