ReactOS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ReactOS Explorer とスタートメニュー |
|
公式サイト: | http://www.reactos.org |
開発者: | ReactOS コミュニティ |
ソースコード: | オープンソース |
最新リリース: | 0.3.0 / 2006年8月27日 |
カーネル種別: | ハイブリッドカーネル |
ユーザーインタフェース: | グラフィカルユーザインターフェース |
ライセンス: | GPL と LGPL |
開発状況: | アルファ |
ReactOS(リーアクト オーエス)は、フリーソフトウェアおよびオープンソースのプロジェクトであり、Microsoft Windows NT/XPやWindows Server 2003のアプリケーションやドライバとオブジェクトコード互換を持ったオペレーティングシステムを開発することを目標としている。既にプロジェクトの目標や途中段階のうちいくつかを達成したものの、2005年11月現在、プロジェクトはアルファ前の開発段階にある。
ReactOSは、主にC言語で作成されている。また、ReactOS Explorerのような一部のプログラムはC++言語で書かれている。
ReactOSの様々なコンポーネントはGNU GPLやGNU LGPL、そしてあるいはBSDライセンスに従っている。
2006年1月中旬、ReactOSにはWindowsを逆アセンブルして作成したコードや、Microsoftから流出したWindowsのコードを見たことがある開発者が書いたコードが含まれていることが確認された。そのため現在プロジェクトでは、開発・公開を一時中止させ、全ソースコードの検査が行われている。検査終了後には、汚染されたコードは全て取り除かれ、ReactOSのコードはよりクリーンなものとなるだろう。
目次 |
[編集] 歴史
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はコードの検査を行っており(上のセクションを参照)、新機能の実装作業は行われていない。
[編集] 関連するプロジェクト
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へと取り込むことができる。
[編集] 今後
バージョン0.3.0では完全なTCP/IPネットワークサポートが行われた。また現在、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にはいくつかのブランチがあり、次に挙げるような機能の実装などが行われている:
これらの変更はメインのReactOSには取り込まれていない。
[編集] 問題と機会
ReactOSプロジェクトは、開発者の不足という問題を抱えている。コーディネーターはより多くの人々が開発へと参加し、開発がより早く進むようになることを望んでいる。コーディネーターは「ReactOS の開発に参加することで、1990年代にLinuxで行われたように、OS開発の初期の段階へと関わることができる。これはめったにない、充実した機会である」と述べている。
[編集] 批判
ReactOS プロジェクトは無駄なものだ、とを批判する者もいる。その批判の理由の一つとして、既に十分に開発されたオープンソースのオペレーティングシステムが存在している、という事実がある(現在、そういったOSはどれもUNIXに基づいているか、UNIXを手本としている: Linuxや数種のBSDがそうである)。批判する者は、新しいOSを作り出すより、既にあるOSを改良したり、Wineの開発に参加する方が良いと考えている。Wineの開発が進めば、既にあるWindows向けのアプリケーションがよりうまく動作するようになる。しかしReactOSの開発者は、次のように主張している。より下位のレベルからWindowsに似せてOSを作成し(即ち、一プログラムでOSをWindowsに似せようとするよりも、よりWindowsに似せてデザインするということ)、そのOSに既にあるWindowsアプリケーションを動かす基礎(Wineのような)とを組み合わせる。そうすることで、より幅広い互換性を確保できるのだ、と。
Windowsアプリケーションの機能に加え、ReactOSの開発者や支持者たちは次のように主張している。UNIXスタイルだけが最良のOSの形ではなく、またその必要もない。またNTのデザインには、UNIXのやり方を改良したアイデアがたくさん盛り込まれている。また選択肢があることはオープンソースやフリーソフトウェア運動の基本原則である。よってオープンソースのモダンなグラフィカルOSを使いたいと思う者が、Unixに似たOSを使うことを強いられるべきではない。究極的には、フリーソフトウェア運動が最大の成功を納めたといえるのは、誰もが自由にフリーソフトウェアのOSを選択できるようになったときであろう。選択できるべきフリーソフトウェアのOSというのは、最も自分の好みに合った OS、そして/または選択する人が慣れ親しんでいるOSに似たOSである。
加えて、最近では仮想化技術が普及してきているということもある。例えば、商用のVMwareや、更に新しいものではフリーソフトウェアのXenといったものがある。Xenは軽量な仮想化技術である: x86ハードウェアを完全にエミュレートしない(一方、VMwareではこれを行っている)。このため、XenとゲストOSの間で連携を行う必要がある。ReactOS中に連携機能を盛り込むということは、魅力的である。一方で、フリーソフトウェアコミュニティはWindows NTで必要となるドライバを書かなくてはならない。これは先の見えない作業であり、非常に気力が失われる。
[編集] 要求されるハードウェア
- 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 home page (公式サイト、英語)
- ReactOSまとめwiki - 日本語で多くの情報を集めている
- ReactOS Wiki (英語)
- Official ReactOS Nightly Builds
- SourceForge の ReactOS プロジェクトのページ