ReactOS

维基百科,自由的百科全书
跳转至: 导航搜索
ReactOS
Ros.PNG
ReactOS Explorer和Start Menu
公司 / 开发者 ReactOS基金会
運作狀態 Alpha
源码模式 FOSS自由软件/开源
最新穩定版本 0.3.16 / 2014年2月3日;7個月前 (2014-02-03)
内核类别 混合内核
默认用户界面 GUI
许可证 GNU GPLLGPLBSD licenses
官方網站 http://www.reactos.org
ReactOS截圖:多任务
ReactOS浏览器和开始菜单

ReactOS是一个开发与Windows NTWindows 2000 应用程序、硬件驱动程序兼容的开源操作系统项目。本项目目前虽然只是处于内部测试(alpha)开發状态,但到2005年1月其中一些子项目已经完成了目标。

ReactOS主要是由C語言編寫。部分元件則由C++編寫,例如ReactOS文件瀏覽器。

ReactOS的各部份在GNU通用公共许可证GNU寬通用公共許可証、及/或BSD License下发布。

為確保操作系統沒有任何一部份是看過泄漏出來的微軟Windows源碼的人所寫,或者逆向工程的過程達不到Clean room design標準,一個全盤的源碼審查由ReactOS主要開發者下令展開。此審查目前已經結束。

历史[编辑]

開發[编辑]

大约在1996年時,一群开源软件开发者启动了一个名为FreeWin95的项目,旨在实现一个Windows 95克隆操作系统。这个项目当时只停留在关于系统实现的讨论上。

到了1997年末,项目依旧没有进展。开发成员呼吁重新开始这个项目,而实现的目标也改为Windows NT系统,同时项目名称命名为ReactOS(“React”意为“反抗”)。1998年二月ReactOS项目正式启动,开始开发系统内核和基本的驱动程序。

版本紀錄[编辑]

颜色 含义
停止支持的版本
绿 当前版本
未来版本
跳过的版本
版本 发布日期 发布信息
0.2.0 2004-01-25 first release with working GUI
0.2.1 2004-03-03 bug fixes only
0.2.2 2004-04-27
0.2.3 2004-06-26
0.2.4 2004-09-13
0.2.5 2005-01-02
0.2.6 2005-04-09
0.2.7 2005-08-21
0.2.8 2005-10-29 VMWare detection, CSRSS rewrite
0.2.9 2005-12-22 bug fixes only
0.3.0 2006-08-27 first version to officially support networking
0.3.1 2007-03-10 program manager included, start of kernel rewrite
0.3.2 跳过 branch created but never released
0.3.3 2007-09-12 kernel and win32k improvements
0.3.4 2008-01-22 registry support rewrite, remote desktop client and Plug 'N' Play
0.3.5 2008-06-30 bug fixes only
0.3.6 2008-08-06 RTL support
0.3.7 2008-11-04 improved x86-64; MSVC, new stacks
0.3.8 2009-02-04 introduced PSEH and multipartition HDD support in LiveCD
0.3.9 2009-04-26 24MB minimum RAM, faster hyperspace mapping, initial sound support
0.3.10 2009-07-05 initial SATA support, USB keyboard/mouse support, Paint clone, initial MSVC.[1][2]
0.3.11 2009-12-16 kdcom rewrite; Chinese/Korean fonts; compatibility updates; sound system improvements
0.3.12 2010-10-20 trap handler rewrite; timer and message handling rewrite; NMI英语Non-maskable interrupt support; WinSxS英语Side-by-side assembly support; partial EMS support
0.3.13 2011-03-22 heap manager rewrite, improved SATA support, fixed graphics issues[3]
0.3.14 2012-02-07 ACPI enabled by default, WiFi support (unencrypted and WEP), theme support, new TCP/IP driver (LwIP英语lwIP), MSVC compatibility, Scatter/Gather DMA operations supported, shell32 rewrite[4]
0.3.15 2013-05-30 USB support for mice, keyboard, and storage devices; rewritten session management; AHCI support with updated UniATA driver; alternate ReactOS Memory Management Module has taken over all memory management responsibilities except for sections; preliminary support for debugging ReactOS components using windbg; improvements based on results from the AutoHotKey application functionality test suite; Bugfixes based on running Driver Verifier on several bundled drivers[5]
0.3.16 2014-02-06 CSRSS rewrite; theme support; network card driver for the RTL8139, allowing ReactOS to support newer versions of QEMU out of the box[6]

更詳細事項,請參見日文維基百科「ReactOS 版本歷史」。(日文)

ReactOS源碼的爭議[编辑]

2006年1月17日,Hartmut Birr在ReactOS開發者郵件論壇ros-dev指出ReactOS包含由反编譯Windows的源碼[7]。因此開發者暫時禁止非開發者進入系統。鑑於ReactOS是開放源碼軟體,此舉引起開放源碼社群的不滿。ReactOS的貢獻者沒受當時的舉動影響。

不久後所有軟體開發工程都能自由進入了。由於Birr的指责未能證實,開發者決定審查源碼。

可能「受污染」的源碼會被封鎖,直到那些源碼經審查後確定無問題[8]。現時大部分的源碼已解封,維護和開發都可繼續進行,而審查亦同時進行。

功能概述[编辑]

到了2005年,ReactOS内核已经十分稳定,大多数给上层程序开发使用的API均制作完成,并且拥有了一个基本的GUI窗口界面。ReactOS已经具有一个与Windows浏览器类似的ReactOS Explorer作为系统操作界面。

ReactOS 0.2版可以运行相当多数的Win32应用程序,并拥有自己的Notepad(记事本,基本的文本编辑器)、Regedit(系统注册表编辑器),Cmd(命令行提示符)和几个其他的大型应用(比如AbiWord文字编辑器)以及一些游戏(QuakeQuake IIWine扫雷克隆)。

RosExplorer (Mozilla ActiveX Control)

0.2.5版主要工作在于声卡、网卡的驱动支持。Lynx文本网页浏览器抓取网页的屏幕图展示了,不过这个功能尚待进一步改进。这个版本更加入了Ext2文件系统GRUB boot loader的支援,让ReactOS与Linux分区共存。

自0.2.6版起,DillomIRC网页浏览器Mozilla FirefoxDCOM组件 可于ReactOS内运行。部份游戏如Unreal Tournament和Deus Ex则已知能以软件渲染的方式运作。使用nVidia-Driver或者Mesa 3D的软模式,OpenGL的运行只剩下一些小问题。第一个网络服务器 Tiny Web ServerThe UltraVNC Client 宣布运行成功。从右图可见,OpenOffice(1.x版)也有部份可以执行了。

及至版本0.2.8,TCP/IP的部份元素开始运作,还有更多的应用程序例如NotepadAbiWordOpenOfficeDeus ExUnreal Tournament声音USB支持尚在制作中(SB16半工作、USB OHCIUHCI则仍须劳力)USB功能「借」自CromwellPlug and Play的开发工作、与及WDM的支持亦已展开。除了字符网页浏览器Lynx,ReactOS更可以以MozillaDCOM组件以图像方式浏览网页。

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%。

於2007年9月,審查接近完成,審查狀態從網站移除。雖然審查結束,但由於此屬內部審查,具體詳情未有公佈。

相关项目[编辑]

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中集成该项功能的决定成为一个难题。

Wine[编辑]

ReactOS架構簡化圖,當中Wine所依賴的部份繪有Wine的Logo。

ReactOS採用了Wine專案的部份,讓ReactOS随着Wine在Win32 API项目的发展而有所增進[9]。Wine的DLL因其大多可以在ReactOS和Wine之间共同,唯有以下五個部件因為架構方面的差異而不能共用,分別為:

此外,對於Wine專案無需存在的部份元件,例如:作業系統的內核,也需要由ReactOS來開發[10][11]

此外,ReactOS另外有一支實驗性的Arwinss團隊,透過另一種方式去構建Win32 API,使USER32及GDI32的支援可以做得更好。ReactOS原來的Win32子系統完全以Windows的等同為藍本,但Arwinss則透過合併原來ReactOS的Win32子系統及Wine的Win32子系統的架構,以好好利用Wine的系統兼容性。這樣,Arwinss就可以讓用戶透過一個遙距的X server作顯示,而無需硬性規定必須要用硬件上的顯示屏[12]

未来目标[编辑]

ReactOS Desktop

ReactOS的路線圖顯示 發佈0.3.0將會包含全面的TCP/IP網絡支援。開發者正在進行對USB的支援,並為此把Linux的Cromwell版做法轉了過來。另一個工作中项目是 www.reactos.org 主頁。

ReactOS的開發者(指:程式設計師)正在強化GUI圖像化操作介面系統,並加增networking網路功能、multimedia多媒體功能和plug-and-play隨插即用的硬體性支援。Java平臺.NET的執行支援(藉由Mono專案技術)也有所顧及。此外ReactOS也有預留對DOSOS/2POSIX等子系統的支援,使ReactOS能盡可能相似、逼近Windows NT子系統。

到了2004年10月,目標在1.0版上實現Windows NT 4.0工作站版的子集,此稱為「ReactOS Workstation」,其中包括TCP/IP網路、客戶端與伺服端的CIFSOpenGLDirectX等的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上的虛擬機器都有問題,而不能使安裝完成。安裝程序在安裝在一個全新的硬碟上時,亦會出現錯誤。[來源請求]

另外,ReactOS做出BSoD(Blue Screen of Death)的機會太高,其意味這ReactOS本身並不穩定[來源請求]

硬件需求[编辑]

值得留意的是,ReactOS亦可在能模擬上述硬件的軟件內運作,比如Virtual PCVMwareBochsQEMU

眼見Windows NT 4.0可在i386以外的MIPSAlpha AXPPowerPC架構運行,而NT衍生的作業系統如Windows XPWindows Server 2003又已被移植到不同的硬體架構上(例如x86-64IA-32IA-64),ReactOS開發者亦開始注意可移植性。譬如對IA-32架構變種Xbox平台的支援,已加入0.2.5發佈版,而直到2006年上半年,PowerPC port和Xen port的工程仍在努力。

参见[编辑]

參考資料[编辑]

  1. ^ ReactOS 0.3.10. OS Revolution. [2009-12-09]. 
  2. ^ Holwerda, Thom. ReactOS 0.3.10 Released. OSNews. 2009-07-06 [2009-12-09]. 
  3. ^ 0.3.13 - ReactOS 
  4. ^ 0.3.14 - ReactOS 
  5. ^ 0.3.15 - ReactOS, Reactos.org [2014-02-10] 
  6. ^ ReactOS 0.3.16 Released, Reactos.org [2014-02-10] 
  7. ^ Hartmut Birr in mailing list ros-dev
  8. ^ ReactOS audit status
  9. ^ Acknowledgements. Wine. [2009-11-15] (英文). 
  10. ^ Ionescu, Alex"The ReactOS Project – An Open Source OS Platform for Learning" University of Waterloo, Canada(2006年2月26日).於2009年12月10日查閱
  11. ^ C., Michele. ReactOS is (not) Windows, Hackmeeting 2009. Milan. 19–21 June 2009 [2009-12-09]. 
  12. ^ Holwerda, Thom. ReactOS Proposes Radical New Win32 Subsystem. OSNews. 2010-01-18 [2010-01-18]. 

外部链接[编辑]