ハイブリッドカーネル

モノリシックカーネル、マイクロカーネル、ハイブリッドカーネルベースのオペレーティングシステムの構造
ハイブリッドカーネル（hybrid kernel）とは、オペレーティングシステムで使用されているモノリシックカーネルとマイクロカーネルのアーキテクチャの特徴と利点を組み合わせようとするオペレーティングシステムのカーネルアーキテクチャであるdate=August 2022。

**概要**
伝統的にカーネルはモノリシックカーネルとマイクロカーネルにカテゴリ分けされてきたefn|ナノカーネルとエクソカーネルはマイクロカーネルのより極端なバージョンと見られている。。「ハイブリッド」というカテゴリは、ハイブリッドカーネルと通常のモノリシックカーネルの類似性から議論を呼んでいる。この用語はリーナス・トーバルズによって単なるマーケティング用語として却下された。
ハイブリッドカーネルの背後にある考えは、マイクロカーネルに似たカーネル構造を持ちながら、その構造をモノリシックカーネルの方法で実装することである。マイクロカーネルとは対照的に、ハイブリッドカーネルの（殆ど）全てのオペレーティングシステムのサービスはlabel=カーネル空間に置かれている。マイクロカーネルのようにlabel=ユーザー空間にサービスを置くことによる信頼性の利点はない。しかし、通常のモノリシックカーネルと同様に、マイクロカーネルで通常発生するカーネルとユーザーモードの間のメッセージの送受信やコンテキストスイッチによる性能上のオーバーヘッドはない。

**例**

**NTカーネル**
label=ユーザーモードとカーネルモード）があり、両方のレイヤー内に様々なモジュールが存在する。
ハイブリッドカーネルの代表的な例としては、Windows 11とWindows Server 2022を含み、Windows Phone 8、Windows Phone 8.1、Xbox One、Xbox Series X/Sでも採用されている、Windows NT系の全てのオペレーティングシステムで採用されているMicrosoft Windows NTカーネルがある。
Windows NTはハイブリッドカーネルをベースとした最初のWindowsオペレーティングシステムであったdate=August 2022.。このハイブリッドカーネルはカーネギーメロン大学のリチャード・ラシッドが開発したMachマイクロカーネルの影響を受けた修正されたマイクロカーネルとして設計されたが、純粋なマイクロカーネルの全ての基準は満たしていなかった。Windows NT系はエミュレーションサブシステムがモノリシックカーネルのようにカーネルモードで実行されるのではなくユーザーモードのサーバプロセスで実行され、更に多くの設計目標がMachの設計目標多数あることから特にOSのパーソナリティを一般的なカーネル設計から分離すること。、モノリシックカーネルではなくハイブリッドカーネル（またはマイクロカーネル）に分類される。逆に、Windows NT系がマイクロカーネルシステムでない理由は、モノリシックカーネルの設計の場合と同様に、システムコンポーネントの殆どがカーネルと同じアドレス空間で実行されるためである従来のモノリシックカーネルの設計では、マイクロカーネルそのものが存在しないが、モノリシックカーネルでもWindows NT系のマイクロカーネルとカーネルモードサブシステムと同様の機能を実装する。。
Windowsの主なオペレーティングシステムのパーソナリティは常に存在するWindows APIである。このパーソナリティを実装するエミュレーションサブシステムはクライアント/サーバー ランタイム サブシステム（csrss.exe）と呼ばれている。Windows NT 4.0より以前まではこのサブシステムにはウィンドウマネージャ、グラフィックデバイスインターフェース、グラフィックデバイスドライバも含まれていた。ただし、性能上の理由からWindows NT 4.0以降ではこれらのモジュールはカーネルモード実行されるこれらのモジュールはモノリシックカーネルベースのシステム、特に内部グラフィックサポートのない状態で設計されたシステムでもユーザーモードで実装されることが多い。。
Windows NT系で実行されるアプリケーションはOSのパーソナリティの1つ通常はWindows API。に記述されており、ドキュメントが公開されていないOSのネイティブなAPIには記述されていないデバイスドライバの開発で使用されるルーチンを除く。。OSのパーソナリティはエミュレーションサブシステムサーバプロセスと共に、必要に応じてアプリケーションプロセスのアドレス空間にマッピングされる一連のユーザーモードDLLを介して実装される。アプリケーションは同じアドレス空間にマッピングされたOSのパーソナリティのDLLを呼び出すことによってシステムサービスに接続し、同じくアプリケーションプロセスのアドレス空間にマッピングされたNTランタイムライブラリ（ntdll.dll）を呼び出す。NTランタイムライブラリはカーネルモードにトラッピングしてカーネルモードのExecutiveルーチンを呼び出すか、適切なユーザーモードサブシステムサーバプロセスにlabel=ローカルプロシージャコールを行うことによってこれらの要求を処理し、NT APIを使用してアプリケーションプロセス、カーネルモードサブシステム、及び相互に通信する。

**XNUカーネル**
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を使用しているefn|OSFMK 7.3にはユタ大学のMach 4から適用できるコードと、オリジナルのカーネギーメロン大学のMach 3.0カーネルからフォークした多くのMach 3.0バリアントから適用できるコードが含まれている。。BSDコンポーネントはFreeBSDプロジェクトに由来するコードによってアップグレードされ、Driver KitはI/O Kitと呼ばれるドライバ開発用のC++ APIに置き換えられたdate=February 2023。

**説明**
他の現代的なカーネルと同様に、XNUはハイブリッドカーネルであり、モノリシックカーネルとマイクロカーネルの両方の機能を備えており、マイクロカーネルのメッセージパッシング機能などの両方の技術を最大限に活用して、モジュール性を高めてdate=October 2015OSのより大きな部分でメモリ保護の利点を享受できるようにしながらdate=June 2012、ある程度の重要なタスクに対してに対してモノリシックカーネルの速度を維持することを目指している。

**その他**
 BeOS
** Haiku- Syllable- BSD系
** DragonFly BSDefn|ハイブリッドカーネルにMachを使用しない最初のBSD系OS。- NetWare- Plan 9 from Bell Labs
** Inferno- OS/2
** eComStation
** ArcaOS
** OS/4- ReactOS

**脚注**

**注釈**

**出典**

**参考文献**
 url-status=dead

**関連項目**
 マイクロカーネル- エクソカーネル- ナノカーネル- モノリシックカーネル- Single address space operating system- Windows NT系- XNU