ReactOS
维基百科,自由的百科全书
ReactOS Explorer和Start Menu |
|
網站 | http://www.reactos.org |
公司/ 開發 |
ReactOS社区 |
zh-cn:源码模式;zh-tw:原始碼模式 | 自由软件/开源 |
最新版本 | 0.3.1 / 2007年3月11日 |
zh-cn:内核;zh-tw:核心类型 | 混合内核 |
zh-cn:默认; zh-tw:預設zh-cn:用户界面; zh-tw:使用者界面 | GUI |
软件授权方式 | GPL和LGPL |
運作狀態 | Alpha |
ReactOS 是一个开发与 Windows NT 和 Windows 2000 应用程序、硬件驱动程序兼容的开源操作系统项目。本项目目前虽然只是处于内部测试(alpha)开發状态,但到2005年1月其中一些子项目已经完成了目标。
ReactOS主要是由C語言編寫。部分元件則由C++編寫,例如ReactOS文件瀏覽器。
ReactOS的各部份在GNU通用公共许可证、GNU寬通用公共許可証、及/或BSD License下发布。
為確保操作系統沒有任何一部份是看過泄漏出來的微軟 Windows 源碼的人所寫,或者逆向工程的過程達不到 Clean room design 標準,一個全盤的源碼審查由 ReactOS 主要開發者下令展開。此審查現正與 ReactOS 的開發同步進行中。
目录 |
[编辑] 历史
大约在 1996年時,一群开源软件开发者启动了一个名为 FreeWin95 的项目,旨在实现一个 Windows 95 的克隆操作系统。这个项目当时只停留在关于系统实现的讨论上。
到了 1997年末,项目依旧没有进展。开发成员呼吁重新开始这个项目,而实现的目标也改为 Windows NT 系统,同时项目名称命名为 ReactOS(react 反抗)。1998年二月 ReactOS 项目正式启动,开始开发系统内核和基本的驱动程序。
[编辑] ReactOS 源碼的爭議
2006年1月17日,Hartmut Birr 在 ReactOS 開發者郵件論壇 ros-dev 指出 ReactOS 包含由反编譯 Windows 的源碼[1]。因此開發者暫時禁止非開發者進入系統。鑑於 ReactOS 是開放源碼軟體,此舉引起開放源碼社群的不滿。ReactOS 的貢獻者沒受當時的舉動影響。
不久後所有軟體開發工程都能自由進入了。由於 Birr 的指摘未能證實,開發者決定審查源碼。
可能「受污染」的源碼會被封鎖,直到那些源碼經審查後確定無問題[2]。現時大部分的源碼已解封,維護和開發都可繼續進行,而審查亦同時進行。
[编辑] 功能概述
到了 2005年,ReactOS 内核已经十分稳定,大多数给上层程序开发使用的API均制作完成,并且拥有了一个基本的GUI窗口界面。ReactOS 已经具有一个与 Windows 浏览器类似的 ReactOS Explorer 作为系统操作界面。
ReactOS 0.2 版可以运行相当多数的 Win32 应用程序,并拥有自己的 Notepad(记事本,基本的文本编辑器)、Regedit(系统注册表编辑器),Cmd(命令行提示符)和几个其他的大型应用(比如 AbiWord 文字编辑器)以及一些游戏(Quake 和 Quake II,Wine 的扫雷克隆)。
0.2.5 版主要工作在于声卡、网卡的驱动支持。Lynx文本网页浏览器抓取网页的屏幕图展示了,不过这个功能尚待进一步改进。这个版本更加入了Ext2文件系统和 GRUB boot loader 的支援,让 ReactOS 与 Linux分区 共存。
自0.2.6版起,Dillo、mIRC 和网页浏览器Mozilla Firefox的DCOM组件 可于ReactOS内运行。部份游戏如 Unreal Tournament 和 Deus Ex 则已知能以软件渲染的方式运作。使用 nVidia-Driver 或者 Mesa 3D 的软模式,OpenGL 的运行只剩下一些小问题。第一个网络服务器Tiny Web Server和 The UltraVNC Client宣布运行成功。从右图可见,OpenOffice(1.x版)也有部份可以执行了。
及至版本0.2.8,TCP/IP的部份元素开始运作,还有更多的应用程序例如 Notepad、AbiWord、OpenOffice、Deus Ex 和 Unreal Tournament。声音及USB支持尚在制作中(SB16半工作、USB OHCI 和 UHCI 则仍须劳力) USB功能「借」自 Cromwell。Plug and Play的开发工作、与及WDM的支持亦已展开。除了字符网页浏览器Lynx,ReactOS 更可以以 Mozilla 的 DCOM组件以图像方式浏览网页。
ReactOS 0.2.8 能侦测自己是否在 VMWare 中运行,继而到 VMWare Tools ISO 安装SVGA驱动以提供更佳的GUI表现。CSRSS 经已完全重写, 一个「重头写起」的 Ws2_32 也预计即将完工。在Trunk里面有些运作上还可以的ddraw,dplay和dplayx元素。
及至2006年3月8日,ReactOS 的开发者开始了对所有使之与 Microsoft Windows 兼容的代码的自我审查。此过程是为了响应程序员对逆向工程的指责,验证确保 ReactOS 源代码没有违反美国版权法。
2006年6月15日,ReactOS 0.3.0发表了Candidate 1。网络功能(TCP/IP)和即插即用支持的改善为这个版本的重点。审查到达94%之时,Candidate 2发表,将审查期间发现的众多bug修正。
2006年8月28日,ReactOS 0.3.0脱离Release Candidate阶段,正式发表予公众。
直至2006年9月20日,审查过程已完成95.7%。而至2006年12月12日,審查過程已完成96.4%。
[编辑] 相关项目
ReactOS一直與WINE緊密合作,讓ReactOS随着WINE在Win32 API项目的发展而发展。Wine的DLL因其大多可以在ReactOS和Wine之间共同使用而被受關注。為此雙方致力於兼容問題,務求令餘下的少量 DLL 也能為 ReactOS 所用。
另一個相關項目是 Samba TNG。它实现了一系列的服务,例如LSASS、SAM、NETLOGON和SPOOLSS,这些是ReactOS项目通向成功与通用性(functionally correct interoperability)的关键。雖然 Samba TNG的多層結構和單元式法令它很易將不同服務移植到ReactOS ,但 Samba 的文档设计与战略目标,使得是否向ReactOS中集成该项功能的决定成为一个难题。
[编辑] 未来目标
ReactOS 的路線圖顯示 發佈0.3.0 將會包含全面的TCP/IP網絡支援。開發者正在進行對USB的支援,並為此把Linux的Cromwell版做法轉了過來。另一個工作中頂目是 www.reactos.org 主頁。
ReactOS的開發者(指:程式設計師)正在強化GUI圖像化操作介面系統,並加增networking網路功能、multimedia多媒體功能和plug-and-play隨插即用的硬體性支援。Java及.NET的執行支援(藉由Mono專案技術)也有所顧及。此外ReactOS也有預留對DOS、OS/2及POSIX等子系統的支援,使ReactOS能盡可能相似、逼近Windows NT子系統。
到了2004年10月,目標在1.0版上實現Windows NT 4.0工作站版的子集,此稱為「ReactOS Workstation」,其中包括TCP/IP網路、客戶端與伺服端的CIFS、 OpenGL、DirectX等的Windows裝置驅動程式支援。
[编辑] 現有分支
現時ReactOS的開發者的工作項目有:
這些改变都不包括在主要的ReactOS Trunk內。
[编辑] 批评
一些关于ReactOS项目的批评提出几条为什么他们不相信ReactOS会成为一个有价值的项目的原因。其中,有人指出把与Windows NT 4.0兼容作为ReactOS release目标是一个局限,因为NT 4.0评价不佳而且它已经过时了(第一版发布于1996年)
作为回复,有人提出虽然目前是把与Windows NT 4.0兼容作为目标,但是,Windows后来基于NT构架的系统都与NT 4.0在系统層次上高度相似(例如:Windows 2000,Windows XP,Windows Server 2003)。因此,想要与后续的Windows版本兼容,只要NT4.0的目标完成,剩下都简单了。
以此為由,该批评的回复者说把NT4.0的兼容作为里程碑并不是一个局限,而是未来开发的基础。
其它人則批评认为我们已经有好幾個基于Unix(Linux及不同版本的BSD)的操作系统,與其再创建一个新的,不如集中精力改善舊的,努力做好WINE,讓现有的 WINDOWS 应用程序在其上運行得更好。但是,ReactOS开发者及其他擁護者辯解說,UNIX类操作系统不一定是唯一的最好的操作系统类型。NT 的設計含有很多概念是 Unix 工作方式的改進,而且一個在更低層次更似 Windows 的作業系統(即是設計成與 Windows 相似,而非執行某某應用程式,嘗試把另一個操作系統變成 Windows)將更有機會成功達到更廣闊地兼容現有的 Windows 應用程式和(特別是)硬件驅動程式。
另外,ReactOS現時推出的版本仍有很多問題。它們的安裝光碟不論在真實的機器上或Virtual PC上的虛擬機器都有問題,而不能使安裝完成。安裝程序在安裝在一個全新的硬碟上時,亦用出現錯誤。
[编辑] 硬件需求
- IA32-capable 處理器(i486或以上)
- 32MB 内存
- IDE 硬盘
- FAT16/FAT32 启动 分区
- VGA 兼容显示卡
- 标准键盘
- PS/2 兼容鼠标 或 Microsoft 串口兼容鼠标
值得留意的是,ReactOS 亦可在能模擬上述硬件的軟件內運作,比如 Virtual PC、VMWare、Bochs 或 QEMU。
眼見 Windows NT 4.0 可在 i386 以外的 MIPS、Alpha AXP 和 PowerPC 架構運行,而NT衍生的作業系統如Windows XP 和 Windows Server 2003 又已被ported到不同的硬體架構上(例如AMD64、IA32及IA64),ReactOS開發者亦開始注意可移植性。譬如對IA32架構變種Xbox平台的支援,已加入0.2.5發佈版,而直到2006年上半年,PowerPC port 和 Xen port 的工程仍在努力。