この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "XNU"
XNU開発元Apple
初版1996年12月 (27年前) (1996-12)
リポジトリ
github.com/apple-oss-distributions/xnu
プログラミング
言語C C++
対応OSDarwin, iOS, macOS, Unix系
サポート状況開発中
種別カーネル・ハイブリッドカーネル
ライセンスApple Public Source License 2.0
公式サイト ⇒www.opensource.apple.com/
テンプレートを表示
XNUは、Appleが取得・開発したオペレーティングシステムカーネルである。macOSに用いられ、オープンソースソフトウェアのDarwinの一部として公開されている。XNUはX is Not Unixの略[1]。 XNUはモノリシックカーネルとマイクロカーネルの特徴を併せもつハイブリッドカーネルで、マイクロカーネルが可能にするメッセージパッシングのモジュール性やより広範なメモリ保護、モノリシックカーネルがもつ実行速度の保持など、両方の技術を有効に利用することを試みている。 XNUは現在、ARM[2]、IA-32、x64、PowerPCベースのプロセッサにおいて、シングルプロセッサとSMPの両方で動作する。 XNUの基礎であるMachはシンプルなマイクロカーネルであり、OSのコアを分割された柔軟なプロセスとして実行することができる(Machコアの上でいくつかのOSを平行して実行できる)。しかし、これはカーネル/ユーザモードの切り替えに時間を消費し、またマイクロカーネルのアドレス空間とデーモンとのあいだで行われるメッセージのマッピングやコピーによってオーバーヘッドを生じることから、しばしばパフォーマンスが低下してしまう。macOSでは効率化のために、BSDの機能はMachのコアの中に組み込まれた。その結果、Machと古典的なBSDカーネル両方の利点と欠点を併せもつものとなった。 Machは、カーネルスレッド、プロセス管理、プリエンプティブ・マルチタスク、メッセージパッシング(プロセス間通信)、メモリ保護、仮想記憶、ソフトリアルタイム処理のサポート、カーネルデバッグのサポート、コンソールI/Oを提供する。
デザイン
XNUカーネルの図
Noyau xnu simplifie
Mach