ハイブリッドカーネルとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ハイブリッドカーネルの意味・解説 

ハイブリッドカーネル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/02 08:43 UTC 版)

モノリシックカーネル、マイクロカーネル、ハイブリッドカーネルベースのオペレーティングシステムの構造

ハイブリッドカーネル英語: hybrid kernel)とは、オペレーティングシステムで使用されているモノリシックカーネルマイクロカーネルのアーキテクチャの特徴と利点を組み合わせようとするオペレーティングシステムのカーネルアーキテクチャである[1][2][信頼性要検証]

概要

伝統的にカーネルはモノリシックカーネルマイクロカーネルにカテゴリ分けされてきた[注釈 1]。「ハイブリッド」というカテゴリは、ハイブリッドカーネルと通常のモノリシックカーネルの類似性から議論を呼んでいる。この用語はリーナス・トーバルズによって単なるマーケティング用語として却下された[3]

ハイブリッドカーネルの背後にある考えは、マイクロカーネルに似たカーネル構造を持ちながら、その構造をモノリシックカーネルの方法で実装することである。マイクロカーネルとは対照的に、ハイブリッドカーネルの(殆ど)全てのオペレーティングシステムのサービスはカーネル空間英語版に置かれている。マイクロカーネルのようにユーザー空間英語版にサービスを置くことによる信頼性の利点はない。しかし、通常のモノリシックカーネルと同様に、マイクロカーネルで通常発生するカーネルとユーザーモードの間のメッセージの送受信やコンテキストスイッチによる性能上のオーバーヘッドはない。

NTカーネル

Windows NT系のアーキテクチャには2つのレイヤー(ユーザーモード英語版カーネルモード)があり、両方のレイヤー内に様々なモジュールが存在する。

ハイブリッドカーネルの代表的な例としては、Windows 11Windows Server 2022を含み、Windows Phone 8Windows Phone 8.1Xbox OneXbox Series X/Sでも採用されている、Windows NT系の全てのオペレーティングシステムで採用されているMicrosoft Windows NTカーネルがある。

Windows NTはハイブリッドカーネルをベースとした最初のWindowsオペレーティングシステムであった[要出典].。このハイブリッドカーネルはカーネギーメロン大学のリチャード・ラシッドが開発したMachマイクロカーネルの影響を受けた修正されたマイクロカーネルとして設計されたが、純粋なマイクロカーネルの全ての基準は満たしていなかった。Windows NT系はエミュレーションサブシステムがモノリシックカーネルのようにカーネルモードで実行されるのではなくユーザーモードのサーバプロセスで実行され、更に多くの設計目標がMachの設計目標多数あることから[注釈 2]、モノリシックカーネルではなくハイブリッドカーネル(またはマイクロカーネル[4])に分類される。逆に、Windows NT系がマイクロカーネルシステムでない理由は、モノリシックカーネルの設計の場合と同様に、システムコンポーネントの殆どがカーネルと同じアドレス空間で実行されるためである[注釈 3]

Windowsの主なオペレーティングシステムのパーソナリティは常に存在するWindows APIである。このパーソナリティを実装するエミュレーションサブシステムはクライアント/サーバー ランタイム サブシステムcsrss.exe)と呼ばれている。Windows NT 4.0より以前まではこのサブシステムにはウィンドウマネージャ、グラフィックデバイスインターフェース、グラフィックデバイスドライバも含まれていた。ただし、性能上の理由からWindows NT 4.0以降ではこれらのモジュールはカーネルモード実行される[注釈 4][4]

Windows NT系で実行されるアプリケーションはOSのパーソナリティの1つ[注釈 5]に記述されており、ドキュメントが公開されていないOSのネイティブなAPIには記述されていない[注釈 6]。OSのパーソナリティはエミュレーションサブシステムサーバプロセスと共に、必要に応じてアプリケーションプロセスのアドレス空間にマッピングされる一連のユーザーモードDLLを介して実装される。アプリケーションは同じアドレス空間にマッピングされたOSのパーソナリティのDLLを呼び出すことによってシステムサービスに接続し、同じくアプリケーションプロセスのアドレス空間にマッピングされたNTランタイムライブラリ(ntdll.dll)を呼び出す。NTランタイムライブラリはカーネルモードにトラッピングしてカーネルモードのExecutiveルーチンを呼び出すか、適切なユーザーモードサブシステムサーバプロセスにローカルプロシージャコール英語版を行うことによってこれらの要求を処理し、NT APIを使用してアプリケーションプロセス、カーネルモードサブシステム、及び相互に通信する[5]

XNUカーネル

XNUカーネル

XNUとは、ApplemacOSiOSwatchOStvOSで使用するために取得し開発し、Darwinの一部としてFLOSSとして公開したカーネルである。XNUX is Not Unix頭字語である[6]

XNUは元々はNeXTによってNeXTSTEP用に開発され、Machカーネルのバージョン2.5に4.3BSDのコンポーネントとDriver Kitと呼ばれるドライバ開発用オブジェクト指向APIを組み合わせたハイブリッドカーネルであった。

AppleがNeXTを買収した後、MachコンポーネントはマイクロカーネルのOSFMK 7.3にアップグレードされた[7][8]。AppleはFreeBSDの一部が組み込まれたハイブリッドカーネルとして動作する大幅に変更されたOSFMK 7.3を使用している[注釈 7][7]。BSDコンポーネントはFreeBSDプロジェクトに由来するコードによってアップグレードされ、Driver KitはI/O Kitと呼ばれるドライバ開発用のC++ APIに置き換えられた[要出典]

説明

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

その他

脚注

注釈

  1. ^ ナノカーネルエクソカーネルはマイクロカーネルのより極端なバージョンと見られている。
  2. ^ 特にOSのパーソナリティを一般的なカーネル設計から分離すること。
  3. ^ 従来のモノリシックカーネルの設計では、マイクロカーネルそのものが存在しないが、モノリシックカーネルでもWindows NT系のマイクロカーネルとカーネルモードサブシステムと同様の機能を実装する。
  4. ^ これらのモジュールはモノリシックカーネルベースのシステム、特に内部グラフィックサポートのない状態で設計されたシステムでもユーザーモードで実装されることが多い。
  5. ^ 通常はWindows API。
  6. ^ デバイスドライバの開発で使用されるルーチンを除く。
  7. ^ OSFMK 7.3にはユタ大学のMach 4から適用できるコードと、オリジナルのカーネギーメロン大学のMach 3.0カーネルからフォークした多くのMach 3.0バリアントから適用できるコードが含まれている。
  8. ^ ハイブリッドカーネルにMachを使用しない最初のBSD系OS。

出典

  1. ^ Hybrid Kernel - OSDev Wiki”. wiki.osdev.org. 2021年1月11日閲覧。
  2. ^ What is Hybrid Kernel? - Definition from Techopedia” (英語). Techopedia.com (22 August 2011). 2021年1月11日閲覧。
  3. ^ Linus Torvalds”. 2024年8月2日閲覧。 “As to the whole "hybrid kernel" thing - it's just marketing. It's "Oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has.”
  4. ^ a b MS Windows NT Kernel-mode User and GDI White Paper”. Microsoft Corporation (2007年). 2022年8月24日閲覧。
  5. ^ Probert, Dave (2005年). “Overview of Windows Architecture”. Using Projects Based on Internal NT APIs to Teach OS Principles. Microsoft Research/Asia - Beijing. 2007年11月28日時点のオリジナルよりアーカイブ。2007年3月1日閲覧。
  6. ^ Porting UNIX/Linux Applications to OS X: Glossary”. Apple Computer (2005年). 2017年6月16日閲覧。
  7. ^ a b Jim Magee. WWDC 2000 Session 106 - Mac OS X: Kernel. 14 該当時間:.
  8. ^ Douglas M. Wells (1994). A Trusted, Scalable, Real-Time Operating System Environment (PDF). 1994 IEEE Dual-Use Technologies and Applications Conference. S2CID 5205380. 2017年8月22日時点のオリジナル (PDF)よりアーカイブ。
  9. ^ An Overview of the NetWare Operating System”. 2024年8月2日閲覧。
  10. ^ OS/2 Kernel”. 2020年9月4日閲覧。

参考文献

関連項目


ハイブリッドカーネル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 14:38 UTC 版)

カーネル」の記事における「ハイブリッドカーネル」の解説

Windows NT系などの商用OSでよく見られるApplemacOS も、カーネギーメロン大学MachFreeBSDモノリシックカーネルコードベースとしたXNUというハイブリッドカーネルを採用している。マイクロカーネル性能オーバヘッド削減するため一部サービス通信プロトコルスタックファイルシステム)をカーネル空間動作させるが、一部のカーネルコード(デバイスドライバなど)はサーバとしてユーザ空間実行する。これは、純粋なマイクロカーネル高性能提供できる示される以前妥協的考案され技法であり、マイクロカーネルモノリシックカーネル特性一部取り入れて拡張したものと言える。 ハイブリッドカーネルではカーネルモジュール化されているが、モジュール大部分は同じカーネル空間内にロードされる。そのため、バグを含むモジュールロードするカーネル動作不安定になる可能性がある。マイクロカーネル場合カーネルとは全く別の空間モジュール動作させることができ、安全に評価することができる。モノリシックカーネル比較したハイブリッドカーネルの長所を以下に挙げるモジュール開発期間が短い。(カーネル不安定にならない限り評価の際にリブート不要である。カーネル全体の再コンパイル不要である。 サードパーティーテクノロジー素早く統合できる。 モジュール群は何らかのモジュールインタフェースを使ってカーネルやりとりする。そのインタフェースOS固有ではあるが汎用化されており、常にモジュールとして分離実装できるわけではないデバイスドライバにはモジュールインタフェース以上の柔軟性必要なことが多い。基本的にモノリシックカーネルではカーネルとの呼び出し1回で済むところを、ハイブリッドカーネルでは2回呼び出す必要があるモジュール化短所として次の事柄挙げられるインタフェースを通る回数増えるため、バグ作りこむ可能性増加するセキュリティホールも多い可能性がある)。 システム管理者モジュール群の保守において混乱をきたす可能性がある。

※この「ハイブリッドカーネル」の解説は、「カーネル」の解説の一部です。
「ハイブリッドカーネル」を含む「カーネル」の記事については、「カーネル」の概要を参照ください。

ウィキペディア小見出し辞書の「ハイブリッドカーネル」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ハイブリッドカーネル」の関連用語

ハイブリッドカーネルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ハイブリッドカーネルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのハイブリッドカーネル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのカーネル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS