カーネルとは、コンピュータの主要部分である オペレーティング システムのコア を指すためにコンピューティングで使用される英語の単語です。
カーネルのバージョンを古いバージョンまたは最新のバージョンに変更するだけで、コンピュータの ハードウェア および互換性の問題を解決できる場合があります。
システムに関連するすべてを完全に制御できるカーネルは、起動時に最初にロードされるプログラムの 1 つです。カーネルは実行を開始するとすぐに、コンピュータが適切に機能するために必要なすべての ハードウェア を検出するプロセスを開始します。
さらに、カーネルは ソフトウェアの 入出力要求を操作し、使用されるメモリや周辺機器などを管理します。
カーネル機能
システムのコアであるカーネルは、 ソフトウェアを ハードウェア に接続する役割を果たします。 このようにして、オペレーティング システム リソース間の効果的な通信を確立し、それらの機能を管理します。
カーネルによって管理されるオペレーティング システムの主な機能を以下に示します。

プロセス管理
オペレーティング システムでは、プロセスは実行中のプログラムです。カーネルによって実行されるプロセス管理によって、どのプロセスが実行されるかが決まります。
実行中の各プロセスは、同じ秒間に何度もプロセッサーに出入りし、別のプロセスに道を譲ることができます。カーネルは、どのプロセスをプロセッサに割り当てるかを決定する責任があります。
プロセス間の切り替えは非常に迅速に行われるため、プログラムがプロセッサ上にない場合でも実行を続けることができます。
アクセスモード
プロセスの実行は 2 つの異なる方法で実行できます。
- ユーザーモード : 複数のサブシステムで構成されます。環境サブシステムを含むそのうちの 1 つは、さまざまな種類のオペレーティング システム用に設計されたアプリケーションを実行します。ユーザー モードは非特権モードとみなされます。このモードのすべての ソフトウェアは 、プロセスの作成などの特権命令を実行できるようにするために、カーネルにリクエストを行う必要があります。
- カーネル モード : コンピュータ全体にアクセスできるため、特権があるとみなされます。 CPU がカーネル モードにある場合、CPU は信頼できる ソフトウェア を実行しており、任意の命令を実行できることを示します。
CPU の意味も参照してください。

メモリ管理
タスク マネージャーでは、RAM メモリの一部 (合計メモリ) がカーネルに割り当てられます。
プロセス管理中に、カーネルはプログラムをアドレス空間に送信します。カーネルに割り当てられる合計メモリの一部により、そのスペースに割り当てられるメイン プロセスに 使用可能なメモリが常に確保されます 。
カーネルには、各プロセスが動作中にアクセスできるメモリの部分を定義する機能もあります。

デバイス管理
カーネルは 、コンピュータに接続された周辺機器を制御します 。
ユーザーがデバイス (ペン ドライブ、プリンタ、ヘッドフォン、キーボード、マウスなど) を接続すると、カーネルはそのデバイスのメモリと、コンピュータのプログラムや ハードウェア との通信を管理します。
各デバイスには、特定のオペレーティング システムで動作するように作成されたドライブがあります。したがって、Windows 用に設計された ドライバーは 、MAC などでは機能しません。
各デバイスの ドライバーは 、特定の電子デバイスとコンピューターのオペレーティング システムの間で実行されるコマンドの一種の変換を実行する機能を備えています。
オペレーティング システムのサービスには、英語で「シェル」を意味する シェル と呼ばれるユーザー インターフェイスを通じてアクセスします。名前の由来は、 殻が 核を取り囲む最外層であることに由来しています。
インターフェース の意味を参照してください。

システムコール
システムコールとは、ユーザーモードで使用されるコンピュータプログラムが持つ固有の機能です。これらは、コンピュータのオペレーティング システムのコアを呼び出して、 特定のアクションを実行する ために使用されます。
これらの関数は一般に複雑で、平均的なユーザーがアクセスできないリソースを使用します。
以下の Windows システム コールとそれに対応する Linux カーネル コールの例をいくつか参照してください。
窓 | Linux | 説明 |
---|---|---|
クローズハンドル |
近い |
ファイルを閉じる |
ファイルの作成 | 開ける | ファイルの作成 |
ファイルの削除 | リンクを解除する | ファイルの削除 |
終了プロセス | 出口 | プロセスとそのすべてのセグメントを終了する |
ローカルタイムを取得する | チーム | 現在の場所、日付、時刻を取得する |
Windows の詳細については、こちらをご覧ください。

カーネルの種類
アーキテクチャに関しては、オペレーティング システムのコアは モノリシック 、 ハイブリッド 、または マイクロカーネル のいずれかになります。

モノリシック
デバイス ドライバーとコア拡張機能はコア領域で実行され、 ハードウェア に完全にアクセスできます。
すべてのモジュールは同じアドレス空間で実行されるため、これらの空間のいずれかでエラーが発生すると、システム全体が影響を受ける可能性があります。
モノリスの例 : Linux、BSD、MS-DOS、Solaris。
Linux は最もよく知られたモノリシック カーネルの 1 つです。無料のポータブル ソフトウェア である Linux には、IBM コンピュータからモバイル デバイス、 スマートフォン 、 iPod に至るまで、数多くのプラットフォームで実行できるという利点があります。

小核または微核
小核は、その名前が示すように、非常に小さなサイズの核であるため、カーネル空間で実行するプロセスは最小限に抑えられます。これらのプロセスの一部はユーザー空間で実行されます。
マイクロカーネル タイプのカーネルでは、エラーが発生した場合は、問題が発生したサービスを再起動するだけです。これにより、(モノリシック カーネルで発生するような) システム全体がダウンするのを防ぎます。
マイクロカーネルの例 : AIX、BeOS、L4、Mach、Minix、MorphOS、QNX、RADIOS、VSTa、GNU Hurd。
ハイブリッド
ハイブリッド システムは、モノリシック システムや小核システムと比較して、中間点で機能するシステムと考えられます。ハイブリッドは、マイクロカーネルの安定性とセキュリティをモノリシックのパフォーマンスと組み合わせます。
ハイブリッド カーネルはマイクロカーネルに似ていますが、カーネル空間に (「非コア」) コードがあるため、実行される操作がより高速になります。
ハイブリッドの例 : AmigaOS、Android、Chrome、Macintosh、webOS、Windows、OSX、Xinu。
Android カーネルは Linux から構築されています。ただし、Android は単に Linux に基づいているだけで、Linux 自体ではないと考えているため、誰もが Android を Linux として分類しているわけではありません。
Android について詳しくは、こちらをご覧ください。

参考資料
参考画像一覧








参考動画一覧
【10分で解説】BIOS・カーネル・シェルが何か説明できますか?【OSの仕組みの絵本】
What is a Kernel?
ゆっくりで学ぶ基本情報技術者試験 オペレーティングシステム 【ゆっくり解説】
【10分で解説】サーバ入門 OSカーネル【エンジニアとして知っておきたい基礎知識】