WindowsカーネルとLinuxカーネルの大きな違いは、Windowsオペレーティングシステムに搭載されているWindowsカーネルが商用ソフトウェアであるのに対し、Linuxオペレーティングシステムに搭載されているLinuxカーネルはオープンソースソフトウェアである点です。
カーネルは、OSの核となる部分です。
ハードウェア・デバイスとの通信、プロセス管理、ファイル処理など、さまざまな機能を実行します。
OSの種類によってカーネルが異なる。
また、WindowsとLinuxでは、デバイスが異なるカーネルを持っています。
Windowsカーネルとは
Microsoft Windows オペレーティングシステムを搭載した機器は、Windows カーネルで構成されています。
このカーネルはWindows NTカーネルと呼ばれています。
ユニプロセッサと対称型マルチプロセッサを搭載したコンピュータの両方で動作可能であるため、ハイブリッドカーネルとも呼ばれる。
Windowsのアーキテクチャは、Windowsカーネル、ハードウェア抽象化層(HAL)、ドライバ、その他のサポートサービスから構成されている。
これらのサービスはカーネルモードで動作する。
さらに、Windowsシステムは、ユーザーモードとカーネルモードの2つのモードで動作することができます。
ユーザーモードで動作するプログラムは、システムリソースへのアクセスが制限されています。
しかし、カーネルモードで動作するプログラムは、システムメモリ、ハードウェア、リソースへのアクセスに制限はありません。
ユーザーモードでは、IOマネージャを使用して、関連するカーネルモードのデバイスドライバにIOリクエストを送信することが可能である。
Windowsカーネルは、マルチプロセッサの同期、スレッドのサポート、割り込みのスケジューリング、ディスパッチなど様々な機能を実行します。
また、トラップや例外の処理も行います。
また、システム起動時にデバイスドライブを初期化する。
Linuxカーネルとは
Linuxベースのシステムにおけるカーネルは、Linuxカーネルと呼ばれています。
Linuxカーネルが人気のある大きな理由の一つは、それがフリーでオープンソースであることです。
Linuxカーネルはフリーでオープンソースであり、世界中に貢献者がいる。
Linuxシステムでは、ユーザープログラムは、API(Application Programming Interface)によってカーネルと対話することができます。
デバイスドライバは、カーネルの機能の一部として、ハードウェアを制御する。
カーネルとローダブルカーネルモジュール(LKM)の間にはインターフェイスがあります。
また、Linuxカーネルは、パソコンやサーバに搭載されている。
ルータ、無線アクセスポイント、PBX、スマートTVなどの組み込み機器にも搭載されている。
モバイルOSのAndroidも、Linuxカーネルを利用して機能を実装している。
WindowsカーネルとLinuxカーネルの違い
定義
Windowsカーネルは、Microsoft社が開発したWindowsオペレーティングシステムの商用カーネルです。
これに対して、Linuxカーネルは、オープンソースのUnix系コンピュータOSカーネルです。
したがって、これがWindowsカーネルとLinuxカーネルの主な違いです。
デベロッパー
マイクロソフトはWindowsカーネルを開発し、Linux TorvaldsはLinuxカーネルを開発した。
ソースコードへのアクセス
ソースコードへのアクセスもWindowsカーネルとLinuxカーネルの違いの一つです。
Windowsカーネルのソースコードへのアクセスはありません。
しかし、Linuxカーネルのソースコードには完全にアクセスすることができます。
アーキテクチャ
さらに、Windows カーネルと Linux カーネルのもう一つの違いは、Windows カーネルがハイブリッドアーキテ クチャであるのに対して、Linux カーネルはモノリシックアーキテクチャであることである。
ファイルアクセスコントロール
さらに、Windowsでは、ファイルアクセス制御にACL(Access Control List)を使用しています。
これに対し、Linux では、従来の Unix のパーミッションと POSIX ACL を用いてファイル・アクセス制御を行う。
GUIスタック
GUI スタックも Windows カーネルと Linux カーネルの違いの一つです。
Windows はカーネルに GUI スタックを搭載しています。
しかし、Linux では、GUI スタックはユーザースペースにあります。
マルチユーザー対応
Windowsは、バージョンやエディションに依存しますが、マルチユーザーやマルチセッションをサポートしています。
一方、Linuxは100%マルチユーザー環境をサポートしています。
コンフィギュレーション
WindowsカーネルとLinuxカーネルの違いとして、コンフィギュレーションがあります。
Windowsはレジストリに設定を保存し、Linuxはファイルに設定を保存します。
デバイス
Windowsカーネルはデバイスごとに異なる仕組みを持っていますが、Linuxカーネルはすべてのデバイスがファイルです。
この点がWindowsカーネルとLinuxカーネルの重要な違いです。
結論
WindowsカーネルとLinuxカーネルの違いは、Windows OSに含まれるWindowsカーネルが商用ソフトウェアであるのに対し、Linux OSに含まれるLinuxカーネルはオープンソースソフトウェアである点です。