ReactOSまとめWiki - ホワイトペーパー Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
古い翻訳です。
2009.08.29現在のものを翻訳しました。
!ホワイトペーパー
!!導入
ReactOS
Microsoftはマイクロカーネルを修正したもの(マイクロカーネルと階層化オペレー
ティングシステムの両方の側面を結合したもの)だと主張していますが
このアーキテクチャに関して異なる定義をします
わずかな痕跡は、このアーキテクチャがマイクロカーネルを修正したものであると
表現し得るほど十分ではありません
すべてのものを含みます。エグゼクティブの上に保護されたサブシステムがあります。
これらのサブシステムは異なるオペレーティングシステムの機能の実装を提供
します。
!!エクゼクティブ
エグゼクティブはカーネルモードで動作する全てのコードです。
は大雑把には
//-
ハードウェア
//These components all run in kernel mode. The HAL, Kernel, System Services and Device Drivers are collectively referred to as the Executive.
//HALによってx86 ReactOS kernelとHALは異なるx86マザーボードで動作できるように
//なります。HALがマザーボード固有のコードをカーネルから抽象化することで、
//異なるマザーボードでもカーネルを変更しなくて済みます。異なるハードウェア
//デザインの例としては、普通のPCや日本のNEC PC-9800シリーズ、x86 SGIワークステーションなどが
//あります。
HAL
なります
どのようなシステムでもカーネルを変更しなくて済みます
例としては
あります
//デバイスドライバはReactOSエグゼクティブのハードウェア固有の拡張部位です。
//デバイスドライバにより、オペレーティングシステムと特定のデバイスが互いに
//対話できるようになります。ReactOSは現在、Windows NT 4.0デバイスドライバ
//モデルの実装を目指しています。Windows Driver Model(WDM)はすぐ未来の
//関心対象です。WDMは移植性のあるWindowsドライバを記述するためのルール集です。
デバイスドライバはReactOSエグゼクティブの内部で固有のハードウエアの制御を行います。
デバイスドライバにより、オペレーティングシステム上で特定のデバイスが利用できるようになります。
ReactOSは現在、Windows NT 4.0デバイスドライバモデルの実装を目指しています。
今後はWindows Driver Model(WDM)を利用するようになるはずです。
これは移植性のあるWindowsドライバを記述するためのモデルです。
//パケットはIOマネージャ(システムサービス)を経由して送られ
//パケット)を使用します
デバイスドライバはカーネルや他のドライバと通信するためにIRP(IOリクエスト
パケット)を使用します
Windows Driver Model (WDM) のサブセットであるNTドライバモードを実装することがReactOSの現在の目標です。
このパケットはIOマネージャ(システムサービス)によってカーネルや
カーネルの設計はMicrosoft Windows NT 4.0に基づきます。カーネルモード
非同期プロシージャコール(APC)や遅延プロシージャコール(DPC)、プロセス、
スレッド、ミューテックス、セマフォ、スピンロック、タイミングコードなどを
実装しています。
保護されたサブシステムによりReactOSエグゼクティブ上で異なるオペレーティング
システムを実行できます。ReactOSの最初の対象はWin32サブシステムでした。しかし、
Win32サブシステムはエグゼクティブの一部としてカーネルモードで実行され、
ここでは扱われません。
カーネル設計は、Microsoft Windows 2003 Serverの設計に基づきます。それはカーネルモード非同期プロシージャコール(APC)、遅延プロシージャコール、プロセス、スレッディング、ミューテックス、セマフォ、スピンロック、タイミングコード、その他を実装します。
* OS/2
システムサービスは次のものを含みます:IOマネージャ、設定マネージャ、プラグアンドプレイ、電源マネージャ、メモリマネージャ、エグゼクティブサポート、オブジェクトマネージャ、セキュリティ参照モニター、プロセス構造、ローカルプロシージャコール、Win32サブシステム。
!!保護されたサブシステム
* その他多数
他のグラフィックサブシステムのために、 Win32kサブシステムを介してサブシステムのためのインタフェースが存在します。 Windows NTグラフィックスデバイスドライバは、 Win32kサブシステムと強固に統合された設計です。これに起因して、ユーザーモードサブシステムがグラフィックスドライバーと相互に直接対話することは非現実的です。この理由のために、サブシステムはグラフィックスインタフェースのためにカーネルモードWin32kサブシステムを利用しなければなりません。そのようなサブシステムはWin32kウインドウマネージャーに依存する必要はなく、代わりにWin32kサブシステムによって提供されるグラフィックスプリミティブを使うことができます。
Windows NTのグラフィックデバイスドライバは設計上Win32サブシステムと強固に
結合されています。このため、ユーザモードのサブシステムがグラフィックドライバ
と直接対話するのは実用的ではありません。したがって、サブシステムはカーネル
モードWin32サブシステムをグラフィックインターフェイスとして使用します。
このようなサブシステムはWin32ウィンドウマネージャに依存する必要はありません
が、Win32サブシステムが提供するグラフィックプリミティブを代わりに使用できます。
!!ネイティブAPIアーキテクチャ
ユーザーモードコードのためのネイティブAPI
標準的な手法で
コールインターフェースに
Microsoft Windows NT/2000/XPはプログラマのためにネイティブAPI
プログラマに
ネイティブAPIアーキテクチャは
ユーザモードエントリポイントを含むほかに
アップコードとモジュール読み込みコードも
はカーネルモードの
KiSyStemServiceTable
ドライバとアプリケーションの互換性に関して、ReactOSの元々の対象は、Microsoft
Windows NT 4.0でした。その後、Microsoft Windwos 2000とWindows XPがリリース
されました。Microsfot Windows 2000とWindows XPはどちらもWindows NTの子孫です。
それで、アーキテクチャの大きな変更を心配せずに、徐々に互換対象を移行して
います。事実、内部的には、Windows 2000はバージョン情報をWindows 5.0と報告し、
Windows XPはWindows 5.1と報告します。
!!互換性対象
ドライバとアプリケーションの互換性に関して、 ReactOS
WIndows NT/2000/XPテクノロジーに関する資料や記事や書籍が
書かれているからです
ReactOSチームは、公式の互換性対象として、 Windows 2003 Serverを現在の目標とします。現在のリリースにおいて 2003 Serverは最も強固なものの一つと証明されています。これは、 Windows NTベースのオペレーティングシステムの
後期バージョンに存在する
ありません