ハイブリッドカーネル()とは、オペレーティングシステムで使用されているモノリシックカーネルとマイクロカーネルのアーキテクチャの特徴と利点を組み合わせようとするオペレーティングシステムのカーネルアーキテクチャである。
概要 伝統的にカーネルはモノリシックカーネルとマイクロカーネルにカテゴリ分けされてきた。「ハイブリッド」というカテゴリは、ハイブリッドカーネルと通常のモノリシックカーネルの類似性から議論を呼んでいる。この用語はリーナス・トーバルズによって単なるマーケティング用語として却下された。
ハイブリッドカーネルの背後にある考えは、マイクロカーネルに似たカーネル構造を持ちながら、その構造をモノリシックカーネルの方法で実装することである。マイクロカーネルとは対照的に、ハイブリッドカーネルの(殆ど)全てのオペレーティングシステムのサービスはに置かれている。マイクロカーネルのようににサービスを置くことによる信頼性の利点はない。しかし、通常のモノリシックカーネルと同様に、マイクロカーネルで通常発生するカーネルとユーザーモードの間のメッセージの送受信やコンテキストスイッチによる性能上のオーバーヘッドはない。
例
NTカーネル
ハイブリッドカーネルの代表的な例としては、Windows 11とWindows Server 2022を含み、Windows Phone 8、、Xbox One、Xbox Series X/Sでも採用されている、Windows NT系の全てのオペレーティングシステムで採用されているMicrosoft Windows NTカーネルがある。
Windows NTはハイブリッドカーネルをベースとした最初のWindowsオペレーティングシステムであった.。このハイブリッドカーネルはカーネギーメロン大学のリチャード・ラシッドが開発したMachマイクロカーネルの影響を受けた修正されたマイクロカーネルとして設計されたが、純粋なマイクロカーネルの全ての基準は満たしていなかった。Windows NT系はエミュレーションサブシステムがモノリシックカーネルのようにカーネルモードで実行されるのではなくユーザーモードのサーバプロセスで実行され、更に多くの設計目標がMachの設計目標多数あることから、モノリシックカーネルではなくハイブリッドカーネル(またはマイクロカーネル)に分類される。逆に、Windows NT系がマイクロカーネルシステムでない理由は、モノリシックカーネルの設計の場合と同様に、システムコンポーネントの殆どがカーネルと同じアドレス空間で実行されるためである。
Windowsの主なオペレーティングシステムのパーソナリティは常に存在するWindows APIである。このパーソナリティを実装するエミュレーションサブシステムはクライアント/サーバー ランタイム サブシステム(csrss.exe)と呼ばれている。Windows NT 4.0より以前まではこのサブシステムにはウィンドウマネージャ、グラフィックデバイスインターフェース、グラフィックデバイスドライバも含まれていた。ただし、性能上の理由からWindows NT 4.0以降ではこれらのモジュールはカーネルモード実行される。
Windows NT系で実行されるアプリケーションはOSのパーソナリティの1つに記述されており、ドキュメントが公開されていないOSのネイティブなAPIには記述されていない。OSのパーソナリティはエミュレーションサブシステムサーバプロセスと共に、必要に応じてアプリケーションプロセスのアドレス空間にマッピングされる一連のユーザーモードDLLを介して実装される。アプリケーションは同じアドレス空間にマッピングされたOSのパーソナリティのDLLを呼び出すことによってシステムサービスに接続し、同じくアプリケーションプロセスのアドレス空間にマッピングされたNTランタイムライブラリ(ntdll.dll)を呼び出す。NTランタイムライブラリはカーネルモードにトラッピングしてカーネルモードのExecutiveルーチンを呼び出すか、適切なユーザーモードサブシステムサーバプロセスにを行うことによってこれらの要求を処理し、NT APIを使用してアプリケーションプロセス、カーネルモードサブシステム、及び相互に通信する。
XNUカーネル
XNUとは、AppleがmacOS、iOS、watchOS、tvOSで使用するために取得し開発し、Darwinの一部としてFOSSとして公開したカーネルである。XNUはX is Not Unixの頭字語である。
XNUは元々はNeXTによってNeXTSTEP用に開発され、Machカーネルのバージョン2.5に4.3BSDのコンポーネントとDriver Kitと呼ばれるドライバ開発用オブジェクト指向APIを組み合わせたハイブリッドカーネルであった。
AppleがNeXTを買収した後、MachコンポーネントはマイクロカーネルのOSFMK 7.3にアップグレードされた。AppleはFreeBSDの一部が組み込まれたハイブリッドカーネルとして動作する大幅に変更されたOSFMK 7.3を使用している。BSDコンポーネントはFreeBSDプロジェクトに由来するコードによってアップグレードされ、Driver KitはI/O Kitと呼ばれるドライバ開発用のC++ APIに置き換えられた。
説明 他の現代的なカーネルと同様に、XNUはハイブリッドカーネルであり、モノリシックカーネルとマイクロカーネルの両方の機能を備えており、マイクロカーネルのメッセージパッシング機能などの両方の技術を最大限に活用して、モジュール性を高めてOSのより大きな部分でメモリ保護の利点を享受できるようにしながら、ある程度の重要なタスクに対してに対してモノリシックカーネルの速度を維持することを目指している。
その他 BeOS Haiku Syllable BSD系 DragonFly BSD NetWare Plan 9 from Bell Labs Inferno OS/2 eComStation ArcaOS OS/4 ReactOS
脚注
注釈
出典
参考文献
関連項目 マイクロカーネル エクソカーネル ナノカーネル モノリシックカーネル
Windows NT系 XNU