ReactOS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ReactOS Explorer とスタートメニュー |
|
公式サイト: | http://www.reactos.org |
開発者: | ReactOS Foundation、ReactOSコミュニティ |
ソースコード: | オープンソース |
最新リリース: | 0.3.1 / 2007年3月10日 |
カーネル種別: | ハイブリッドカーネル |
ユーザーインタフェース: | グラフィカルユーザインターフェース |
ライセンス: | GPL と LGPL |
開発状況: | アルファ |
ReactOS(リーアクト オーエス)は、フリーソフトウェアおよびオープンソースのプロジェクトであり、Microsoft Windows NT/XPやWindows Server 2003のアプリケーションやドライバとオブジェクトコード互換を持ったオペレーティングシステムを開発することを目標としている。既にプロジェクトの目標や途中段階のうちいくつかを達成したものの、現在、プロジェクトはアルファの開発段階にある。
ReactOSは、主にC言語で作成されている。また、ReactOS Explorerのような一部のプログラムはC++言語で書かれている。
ReactOSの様々なコンポーネントはGNU GPLやGNU LGPL、そしてあるいはBSDライセンスに従っている。
2006年1月中旬、ReactOSにはWindowsを逆アセンブルして作成したコードや、Microsoftから流出したWindowsのコードを見たことがある開発者が書いたコードが含まれていることが確認された。そのためプロジェクトでは、開発・公開が一時的に中止された。しかし、2006年2月24日、まだ完全に監査は完了していないものの、活動の再開が発表がなされた。これは開発と監査が同時に進行しているものと思われる。とはいえ、公式サイトでの監査状況は2007年4月5日現在、98.5%となっているため、まもなく監査が完了するものと思われる。
目次 |
[編集] 歴史
1996年ごろ、オープンソース開発者のグループがFreeWin95というプロジェクトを開始した。このプロジェクトの目標はWindows 95のクローンとなるオペレーティングシステムを実装することであった。しかしプロジェクトはシステムのデザインに関する議論で行き詰まった。
1997年の終わりになっても、プロジェクトは何の成果も出せずにいた。プロジェクトのメンバーはプロジェクトの復活を呼びかけ、クローンの対象をWindows NTへと変更し、プロジェクトをReactOSと改名した。こうして1998年2月、ReactOSプロジェクトが発足した。プロジェクトは最初、カーネルと基本的なドライバを開発することから始まった。
[編集] 逆アセンブルされたコードの疑惑
2006年1月17日、ReactOSの開発者向けメーリングリスト (ros-dev) に一人の開発者から「ReactOSにはWindowsを逆アセンブルしたコードが含まれている」との投稿があった。[1] その申し立ての結果、プロジェクトでは非公開に議論を行い、公のsvnの公開、フォーラム、メーリングリストアーカイブを一時停止することを決定した。なお、古いsubversionレポジトリの公開、フォーラム、メーリングリストアーカイブは48時間ほどで復活した。それに加え、コード全体の検査を行い、クリーンルーム方式のリバースエンジニアリングがされていない可能性のあるコードを洗い出す。また、全開発者にクリーンルーム方式のリバースエンジニアリングのみを行うよう、契約書にサインをさせる。[2] コードの調査を完了させ、ソースコードの影響する部分を書き直すには何年もかかるため、今回の件はプロジェクトの進行を遅らせると考えられている。このコード検査は、新たにレポジトリを作成し、検査が終了したら、コードを元の場所から新レポジトリへと移動する、という手順で行われている。
[編集] 機能
2005年現在、ReactOSのカーネルは非常に安定している。また多くのAPIやABIは更に高度な開発への準備ができており、基本的なGUIも利用できる。ReactOSの特徴としてReactOS Explorerがある。これはReactOSのシェルで、Windows Explorerにたいへんよく似ている。
ReactOSのバージョン 0.2.0からは多くのWin32アプリケーションが動作するようになった。例えばメモ帳(ベーシックなテキストエディタ)や Regedit(レジストリエディタ)、cmd.exe(コマンドラインインタプリタ)、そしていくつかのアプリケーション(AbiWord など)やベーシックなゲーム(QuakeやQuake II、そしてマインスイーパのWineクローンなど)が動作する。
0.2.6以降からはDillo, mIRC、そしてMozilla FirefoxのDCOMコンポーネントが動作するようになった。またソフトウェアレンダリングを用いれば、Unreal TournamentやDeus Exのようなゲームもいくつか動作することが確認された。多少問題はあるものの、nVidiaドライバかソフトウェア実装のMesa 3Dを用いてOpenGLも動作するようになった。更にウェブサーバ (Tiny Web server) や UltraVNC Client が初めて動作したことも報告された。OpenOffice.org (Version 1.x) も部分的ながら動作する。
バージョン0.2.8では、TCP/IPネットワークの一部分が動作するようになった。サウンドとUSBの対応作業も行われている(SB16は部分的に動作、USBではOHCI・UHCIの対応作業に取りかかっている)。USBの機能は、Cromwellより借用した。プラグアンドプレイに対応する作業も始まった。同様に、WDMの対応に向けても動き始めている。テキストブラウザのLynxに加え、MozillaのDCOMコンポーネントを用いてウェブページをグラフィカルに巡回することもできる。
ReactOS 0.2.8では、VMware環境で起動しているかどうかを検出することができる。VMware上で起動した場合、VMWare Tools ISOからSVGAドライバをインストールし、GUIのパフォーマンスを上げることができる。CSRSSは完全に書き直され、Ws2_32の「スクラッチから書かれた」実装も近日完成予定である。Trunkに含まれているものには、他にも少しだけ動作しているddraw, dplay dplayxなどがある。
ReactOS 0.3.0では、完全なTCP/IPネットワークサポートが行われた。
[編集] 関連するプロジェクト
ReactOSはWineプロジェクトと協力して活動しており、よってWineが行っているWin32 APIの実装から利益を得ることができる。Win32 API実装の成果は、主にWineのDLLに関連しており、それらの多くはReactOSとWineで共有することができる。双方のプロジェクトは互いの互換性の問題に取り組んでおり、そのため、現在は共有できていない少数のDLLについてもいずれReactOSで使用できるようになるだろう。
もう一つの関連するプロジェクトはSamba TNGである。Samba TNGはLSASS, SAM, NETLOGON, SPOOLSSといった多数のサービスを実装している。これらのサービスはReactOSプロジェクトの成功と(機能的に正しい)相互運用性の鍵となっている。Sambaはそのアーキテクチャデザインと戦略的な目標により、ReactOSへと取り込むことは容易ではない。これに対し、Samba TNGは多層式かつモジュール形式の手法をとっているため、各サービスはずっと容易にReactOSへと取り込むことができる。
[編集] 今後
また現在、ReactOSの開発者はUSBをサポートする作業も行っている。これに関しては、Linux実装のCromwellバージョンの移植が行われている。
ReactOSの開発者によりGUIシステムの改良やネットワーク、マルチメディア、プラグアンドプレイハードウェアに対応する作業が行われている。加えて、GUIシステムを改良する作業も行われている。Javaや、Monoを利用したMicrosoft .NETのサポートへの作業は中断した。マルチユーザー環境の開発が終われば、ターミナル・サービスやリモート・デスクトップの開発も行われることとなる。この開発にはXRDP, VNC, rdesktopが用いられることとなるだろう。Windows NTサブシステムと同様の手法を用い、DOS, OS/2, POSIXサブシステムも提供されている。
2004年10月現在、バージョン 1.0の目標はWindowsワークステーションのサブセット(ReactOSワークステーション)の安定した実装である、との発表がなされた。このワークステーションにはTCP/IPネットワーク、CIFSのクライアント・サーバ両方のサポート、OpenGL、DirectX、そしてWDMによるWindowsのデバイスドライバへの対応が含まれる。
詳細はReactOS Roadmap(英語)を参照のこと
[編集] ブランチ
ReactOSにはいくつかのブランチがあり、次に挙げるような機能の実装などが行われている:
これらの変更はメインのReactOSには取り込まれていない。
[編集] 問題と機会
ReactOSプロジェクトは、開発者の不足という問題を抱えている。コーディネーターはより多くの人々が開発へと参加し、開発がより早く進むようになることを望んでいる。コーディネーターは「ReactOS の開発に参加することで、1990年代にLinuxで行われたように、OS開発の初期の段階へと関わることができる。これはめったにない、充実した機会である」と述べている。
[編集] 要求されるハードウェア
- IA-32互換のプロセッサ (i486 またはその後継)
- 32MBのRAM (インストール後の実行時)。
- IDEハードディスク
- FAT16/FAT32ブートパーティション
- VGA互換のビデオカード
- 標準のキーボード
- PS/2互換マウスまたはMicrosoft Mouse互換のシリアルマウス
ReactOS は上記のハードウェアをエミュレートするソフトウェア上でも動作する。エミュレータの例としてはVirtual PC, VMware, QEMU, Bochs などがある。
Winodows NT 4.0はi386アーキテクチャに加え、MIPS, Alpha AXP, PowerPCアーキテクチャ上でも動作する。また、NTを元に作成されたWindows XPやWindows Server 2003といったOSはいくつものアーキテクチャへと移植されている(一例をあげると、AMD64, IA-32, IA-64がある)。ReactOSでも、移植性を見据えた初期的な処置が取られている。例えば、リリース0.2.5においてはさまざまなIA-32アーキテクチャやXboxプラットフォームへの対応が追加された。また、2005年の段階で、ReactOSをPowerPCやXenアーキテクチャへと移植する作業も進行中である。
[編集] 日本語対応
ReactOSはバージョン0.2.2より、Unicodeを適切に扱うことができるように改良された。これにより、文字コードとして Unicode (UTF-16) を用いたアプリケーションを動作させることができるようになった。また、CやC++ソースコード中に埋め込まれたメッセージをリソースファイルへと移す作業も行われ、OSの一部であるアプリケーションの多くは日本語のメッセージを表示することができるようになっている。実際、0.2.7リリース以後に大半のリソースファイルの翻訳が行われた。よってロケールに日本語が指定されている場合には、メッセージは日本語で表示される。
しかし一方で、Shift_JISのアプリケーション(多くの日本語のWindowsアプリケーションがこれである)にはまだ対応していなかったり、そもそも日本語の表示にも折り返しができない等の問題があったり、ロケール処理にも未実装のものが多いなど、まだまだ実用には程遠いと言わざるを得ない。現在ReactOSプロジェクトには日本を始めとするCJKの開発者がおらず、また国際化対応よりも優先すべき実装・修正が数多くあるため、非ヨーロッパ語圏の言語への対応はしばらく停滞することが予想される。
[編集] 関連項目
- Freedows OS & Alliance OS - Windows クローンの試みだが、今はもう無い
- Windows NT
- Wine
- エミュレーション
- E/OS - 実際にOSをインストールすることなく、他のOS向けのプログラムを動作させることを目標としている。
- OSASK - 「エミュレータOS」を目標としている。
[編集] 外部リンク
- ReactOS Homepage - 公式サイト
- ReactOS Homepage - 公式サイト、日本語
- ReactOSまとめwiki - 日本語で多くの情報を集めている
- ReactOS Wiki - 英語
- Official ReactOS Nightly Builds
- SourceForge の ReactOS プロジェクトのページ