ReactOS

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索
ReactOS
ReactOS logo.svg
ReactOS 0.3.9.png
ReactOS 0.3.9のExplorerとスタートメニュー
開発元企業 / 開発者 ReactOS Foundation・ReactOS コミュニティ
OSの系統 Windows NT系と類似
開発状況 開発中
ソースコード FLOSS
初リリース 0.0.7
最新安定版リリース

0.3.14

/ 2012年2月8日
最新開発版リリース (nightly)
対象マーケット デスクトップ向け
使用できる言語 複数の言語
アップデート方式 再インストールによる
対応プラットフォーム x86
カーネル種別 ハイブリッドカーネル
既定のUI ReactOS Explorer
ライセンス GNU GPLLGPLBSDライセンス(組み合わせ可能)
ウェブサイト www.reactos.org

ReactOS(リアクト オーエス)は、Microsoft Windowsとバイナリレベルおける互換性確保を目指して開発が進められているフリーソフトウェアかつオープンソースオペレーティングシステムである。

目次

[編集] 特徴

ReactOSは、Windows NT系列(主に、XP/Server 2003以降)のアプリケーション及びドライバと互換性の確保を目指している。ソースコードは、基本的にC言語で記述されているが、「ReactOS Explorer」のような一部のプログラムはC++によって記述されている。

ReactOSに含まれるコンポーネント群は『GNU GPL』、『GNU LGPL』、『BSDライセンス』の三つのライセンスのいずれかに従っている。

2011年現在、ReactOSの開発状況はαバージョンの段階にある。

[編集] 歴史

デバイスマネージャ

[編集] FreeWin95からReactOSへ

1996年頃、オープンソース開発者のグループがFreeWin95というプロジェクトを開始した。このプロジェクトの目標はWindows 95クローンとなるOSを実装することであった。しかしプロジェクトはシステムの設計に関する議論で行き詰まり、1997年の終わりになっても、何の成果も出せずにいた。

プロジェクトのメンバーはプロジェクトの復活を呼びかけ、クローンの対象をWindows NTへと変更し、名称をReactOSに改名した。この改名は、MicrosoftのOSシェア独占への不満に起因している[1]1998年2月カーネルと基本的なドライバの開発を開始しReactOSプロジェクトが発足した。

[編集] 逆アセンブルされたコードの疑惑

2006年1月17日、ReactOSの開発者向けメーリングリスト (ros-dev) に一人の開発者から「ReactOSにはWindowsを逆アセンブルしたコードが含まれている」との投稿があった[2]。その申し立ての結果、Windows逆アセンブルして作成したコードや、マイクロソフトから流出したWindowsのコードを見たことがある開発者が書いたコードが含まれていることが確認されたため、プロジェクトでは非公開に議論を行い、公のsvnの公開、フォーラム、メーリングリストアーカイブを一時停止することを決定した。なお、古いsubversionリポジトリの公開、フォーラム、メーリングリストアーカイブは48時間ほどで復活した。それに加え、コード全体の検査を行い、クリーンルーム方式リバースエンジニアリングがされていない可能性のあるコードを洗い出した。また、全開発者にクリーンルーム方式のリバースエンジニアリングのみを行うよう、契約書にサインをさせた[3]

2006年2月24日、まだ完全に監査は完了していないものの、活動再開の発表がなされた。コードの調査を完了させ、ソースコードの影響する部分を書き直すには何年もかかるため、この件によってプロジェクトの進行が遅れるものと考えられていたが、2008年8月末までにコードの監査は完了した[4]。なお、開発と監査は同時に進行していた。このコード監査は、新たにリポジトリを作成し、監査が終了したら、コードを元の場所から新リポジトリへと移動する、という手順で行われた。

[編集] バージョン

[編集] 0.2シリーズ

ReactOS 0.2.0
ReactOSのバージョン 0.2.0からは多くのWin32アプリケーションが動作するようになった。例えばメモ帳(ベーシックなテキストエディタ)や Regedit(レジストリエディタ)、cmd.exeコマンドラインインタプリタ)、そしていくつかのアプリケーション(AbiWordなど)やベーシックなゲーム(QuakeやQuake II、そしてマインスイーパWineクローンなど)が動作する。
ReactOS 0.2.6
0.2.6以降からはDillo, mIRC、そしてMozilla FirefoxDCOMコンポーネントが動作するようになった。またソフトウェアレンダリングを用いれば、Unreal TournamentDeus Exのようなゲームもいくつか動作することが確認された。多少問題はあるものの、nVidiaドライバかソフトウェア実装のMesa 3Dを用いてOpenGLも動作するようになった。更にウェブサーバ (Tiny Web server) や UltraVNC Client が初めて動作したことも報告された。OpenOffice.org (Version 1.x) も部分的ながら動作する。
ReactOS 0.2.8
バージョン0.2.8では、TCP/IPネットワークの一部分が動作するようになった。サウンドUSBの対応作業も行われている(Sound Blaster 16は部分的に動作、USBではOHCIUHCIの対応作業に取りかかっている)。USBの機能は、Cromwellより借用した。プラグアンドプレイに対応する作業も始まった。同様に、WDMの対応に向けても動き始めている。テキストブラウザのLynxに加え、MozillaのDCOMコンポーネントを用いてウェブページをグラフィカルに巡回することもできる。
また、ReactOS 0.2.8ではVMware環境で起動しているかどうかを検出することができる。VMware上で起動した場合、VMWare Toolsに含まれるSVGAドライバをインストールし、GUIのパフォーマンスを上げることができる。CSRSSは完全に書き直され、Ws2_32の「スクラッチから書かれた」実装も近日完成予定である。Trunkに含まれているものには、他にも少しだけ動作しているddraw、dplay dplayxなどがある。

[編集] 0.3シリーズ

ReactOS 0.3.0
ReactOS 0.3.0では、完全なTCP/IPネットワークサポートが行われた。
ReactOS 0.3.4
ReactOS 0.3.4への開発段階で大幅な変更があり一部ではあるがOpenOffice.org2などのソフトが動作するようになった。
ReactOS 0.3.5
ReactOS 0.3.5では、地域設定の追加、キーボードレイアウトの追加や国際化の向上等が行われている。
ReactOS 0.3.6
ReactOS 0.3.6では、x64のサポート、Win32アプリケーションのサポートの追加、ドライバーの非読込のサポート等が行われている。
ReactOS 0.3.9
ReactOS 0.3.9では、ネットワークスタックの改善とカーネルでのサウンドサポート等が行われている。
ReactOS 0.3.10
ReactOS 0.3.10では、初期段階ではあるもののシリアルATAと8GB以上のパーティションのサポート、USBキーボードとUSBマウスのサポート等が行われている。
ReactOS 0.3.11
ReactOS 0.3.11では、メモリマネージャの大幅な改善、スパイダソリティアの追加、日本語に加えて中国語・韓国語の表示サポートなどが行われている。
ReactOS 0.3.12
ReactOS 0.3.12では、新しいメモリマネージャへの置き換え、NMIのサポート、トラップハンドラの再実装、EMS(Emergency Management System)のサポート、PnPの互換性向上、ACPIの改善、新しいPCI-Xドライバの実装、SxSのサポート、タイマーとメッセージハンドリングの再実装、x64でのビルド、最も深刻だと思われていたバグの修正などが行われている。

[編集] 機能

AbiWordとReactOSエクスプローラーが動作しているReactOS

2011年現在、ReactOSはGUIが用意され、基本的な操作が可能になっている。主なAPIABIが用意され、幾つかのアプリケーションの動作が報告[5]されている。また、カーネルは概ね安定している。

[編集] アプリケーション

ReactOSにはWindowsに標準で付属するものによく似たさまざまなアプリケーションやゲームが含まれている。ReactOSに付属するアプリケーションには次のようなものがある。

  • ソリティア
  • ペイント
  • メモ帳
  • ワードパッド

[編集] ユーザインタフェース

ReactOSのユーザインタフェースはWindowsのクラシックスタイルに似ており、コントロールパネルやデバイスマネージャなども実装されている。

ReactOS Explorer
ReactOSの基本機能としてReactOS Explorerが用意されている。これはReactOSのシェルでありWindows Explorerに類似している。
コマンドプロンプト
ReactOSにもコマンドプロンプトが存在し、バッチファイルも実行可能である。

[編集] 開発の現状と今後

現在、ReactOSの開発者はUSBをサポートする作業も行っている。ReactOSの開発者によりGUIシステムの改良やネットワークマルチメディアプラグアンドプレイハードウェアに対応する作業が行われている。加えて、GUIシステムを改良する作業も行われている。いくつかのアプリケーションは保証されないものの、Javaや、Monoを利用した.NETはサポートされている[6][7]。マルチユーザー環境が開発されれば、ターミナル・サービスやリモート・デスクトップの開発も行われることとなる。この開発にはXRDPVNCrdesktopが用いられることとなるだろう。Windows NTサブシステムと同様に、DOSOS/2POSIXサブシステムも提供されている[8]

開発者はWindows NT バージョン5、6とより互換性を持つカーネルを開発し、より多くのアプリケーションをサポートすることを目標としている。また、改良されたUSB、ネットワーク、その他のハードウェアのサポートも利用可能となる可能性がある。その上に、SMBによるファイルの共有サービス、NTFSファイルシステムのサポートも追加されるかもしれない。これらの変更のほとんどはすでに進行中ではあるが、より高度な機能の開発にはより多く時間を要するだろう。

また、3Dゲームのサポートの改善および、完全なOpenGLサポートのための作業も行われている。ReactOSプロジェクトのオープンソース版DirectXともいえる、ReactXの開発にも進歩の動きがみられる[9]

ReactOS プロジェクトは、2ヶ月から6ヶ月の間隔で新しいバージョンをリリースすることを目標としており、2010年10月現在次期バージョンは0.3.13と予定されている。また、バージョン0.5.0からはベータ版となり、実用的なシステムとなる計画である。詳細はReactOSロードマップを参照。

[編集] アーキテクチャのサポート

現在、ReactOSの開発者はReactOSの多数の移植に取り組んでいる:

ReactOSはVMwareVirtualBoxQEMUのような上記のハードウェアをエミュレートもしくは仮想化するソフトウェア上でも動作することが知られている。(Microsoft Virtual PCは現在はサポートされていないが、将来復活するだろう)

Windows NT 4.0はi386アーキテクチャに加えて、MIPS, Alpha AXP, PowerPCアーキテクチャ上でも動作した。また、Windows NT系であるWindows XPWindows Server 2003といったOSはいくつかのアーキテクチャへと移植されている(例をあげると、AMD64IA-32IA-64がある)。ReactOSでも、移植性を見据えた初期的な処置が取られている。例えば、リリース0.2.5においてはさまざまなIA-32アーキテクチャやXboxプラットフォームへの対応が追加された。また、2005年の段階で、ReactOSをPowerPCやXenアーキテクチャへと移植する作業も進行中である。 また現在、PocketPC用のReactOSを期待して、ARMプラットフォームへの移植作業も行われている。これは現段階でフル機能のオペレーティングシステムよりも適している。

[編集] 関連するプロジェクト

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はバージョン0.2.2より、Unicodeを適切に扱うことができるように改良された。これにより、文字コードとして Unicode (UTF-16) を用いたアプリケーションを動作させることができるようになった。また、C言語やC++ソースコード中に埋め込まれたメッセージをリソースファイルへと移す作業も行われ、OSの一部であるアプリケーションの多くは日本語のメッセージを表示することができるようになっている。実際、0.2.7リリース以後に大半のリソースファイルの翻訳が行われた。よってロケールに日本語が指定されている場合には、メッセージは日本語で表示される。ただし、それ以降しばらく日本語の翻訳が停滞していたため新機能の追加などにより、英語の部分もまた増えてきている

しかし一方で、多くの日本語のWindowsアプリケーションが用いているシフトJISを扱うアプリケーションにはまだ対応していなかったり、そもそも日本語の表示にも折り返しができない等の問題があったり、ロケール処理にも未実装のものが多いなど、まだまだ実用には程遠いと言わざるを得ない。現在ReactOSプロジェクトには日本を始めとするCJKの開発者がおらず、また国際化対応よりも優先すべき実装・修正が数多くあるため、非ヨーロッパ語圏の言語への対応はしばらく停滞することが予想される。

バージョン0.3.10からは、「Systema Font」という日本語フォントが追加されたため、インストール時に日本語を選択すれば、日本語が表示できるようになった。また、バージョン0.3.11からは、「Systema Font」から「Droid Sans Fallback」にフォントが変更され、中国語・韓国語の表示も可能になった。このフォントはAndroid向けに開発されたもので、非常に軽量であることが特徴である。

[編集] 脚注

  1. ^ ReactOS's history”. 2010年10月27日閲覧。
  2. ^ [ros-dev] Bye bye”. 2010年10月27日閲覧。
  3. ^ Reset, Reboot, Restart,legal issues and the long road to 0.3”. 2010年10月27日閲覧。
  4. ^ [1][リンク切れ]
  5. ^ ReactOS compatablity database”. 2011年2月26日閲覧。
  6. ^ theuserbl (2009年4月28日). “ReactOS 0.3.9 and Java”. NA. 2009年7月6日閲覧。
  7. ^ Z98 (2009年5月16日). “Newsletter #58”. ReactOS. 2009年7月6日閲覧。
  8. ^ Bragin, Aleksey (2007年11月14日). “ReactOS Status Update”. ReactOS. 2009年1月3日閲覧。
  9. ^ Z98 (2007年11月19日). “OpenGL and ReactX”. ReactOS. 2009年1月3日閲覧。
  10. ^ PowerPC”. ReactOS Wiki. ReactOS. 2009年1月3日閲覧。
  11. ^ ARM Port”. ReactOS. 2009年1月3日閲覧。
  12. ^ 64bit Port”. ReactOS. 2008年8月6日閲覧。

[編集] 関連項目

[編集] 外部リンク

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語