本页使用了标题或全文手工转换

ReactOS

维基百科,自由的百科全书
跳转至: 导航搜索
ReactOS
ReactOS logo.svg
ReactOS-0-3-17 2.png
ReactOS Explorer和开始菜单
公司 / 开发者 ReactOS基金会
運作狀態 Alpha
源码模式 FOSS自由软件/开源
最新穩定版本 0.3.17 / 2014年11月5日(44天前) (2014-11-05)
最新測試版本 0.3.17 RC5 / 2014年10月29日(51天前) (2014-10-29)
内核类别 混合内核
默认用户界面 GUI
许可证 GNU GPLLGPLBSD licenses
官方網站 http://www.reactos.org
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 第一个运行GUI的发布版本
0.2.1 2004-03-03 漏洞修复
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,重写CSRSS
0.2.9 2005-12-22 漏洞修复
0.3.0 2006-08-27 第一个支持网络的官方版本
0.3.1 2007-03-10 包含了程序管理器,开始重写内核
0.3.2 跳过 建立了这个分支但从没有发布
0.3.3 2007-09-12 内核和win32k改进
0.3.4 2008-01-22 重写支持了注册表、远程桌面以及即插即用
0.3.5 2008-06-30 漏洞修复
0.3.6 2008-08-06 支持RTL
0.3.7 2008-11-04 改善x86-64; MSVC, 新栈
0.3.8 2009-02-04 在LiveCD中引入了PSEH和多分区HDD模式支持
0.3.9 2009-04-26 24MB的最小RAM,加快了hyperspace(超级空间)映射,开始支持音效
0.3.10 2009-07-05 开始支持SATA,USB键盘/鼠标支持,画图的复制,开始支持MSVC.[1][2]
0.3.11 2009-12-16 重写kdcom;中文/韩文字体; 兼容性更新;声音系统改良
0.3.12 2010-10-20 重写自陷处理程序;重写定时器和消息处理,支持NMI;支持SxS;部分支持EMS[3]
0.3.13 2011-03-22 重写堆管理器;改善了对SATA的支持,修复了图形界面的问题[4]
0.3.14 2012-02-07 ACPI enabled by default, WiFi support (unencrypted and WEP), theme support, new TCP/IP driver (LwIP), MSVC compatibility, Scatter/Gather DMA operations supported, shell32 rewrite[5]
0.3.15 2013-05-30 对于鼠标,键盘和存储设备的USB支持;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[6]
0.3.16 2014-02-06 重写CSRSS;主题支持改善;RTL8139的网卡驱动程序, 让ReactOS的支持较新版本的QEMU的开箱即用[7]
0.3.17 2014-11-05 引入了 NTVDM,改善字体,漏洞修复[8]
0.4.0 未来版本 对USB更好的支持,完全实现了新的资源管理器,改善了网络以及用户友好的wifi设置,更好的音效支持

含义:

颜色 含义
停止支持的版本
绿 当前版本
未来版本
跳过的版本

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

ReactOS源碼的爭議[编辑]

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

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

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

功能概述[编辑]

到了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项目的发展而有所增進[11]。Wine的DLL因其大多可以在ReactOS和Wine之间共同,唯有以下五個部件因為架構方面的差異而不能共用,分別為:

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

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

未来目标[编辑]

ReactOS 桌面
  • NTFS文件系统的原生支持,尤其是在安装和启动ReactOS的时候
  • 对使用FAT32文件系统格式化大于32 GiB的分区的原生支持
  • 对使用NTFS文件系统格式化分区的原生支持
  • 对使用exFAT文件系统格式化分区的原生支持
  • 对分区映射方案GUID磁碟分割表的原生支持,尤其是当使用UEFI固件在PC上安装和启动ReactOS时
  • 固态硬盘的原生支持
  • 基于先进格式化硬盘的原生支持,尤其是4Kn
  • 触屏的原生支持
  • USB 3.0的原生支持
  • ThunderBolt的原生支持

現有分支[编辑]

現時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本身並不穩定[來源請求]

硬件需求[编辑]

  • x86或x86-64的兼容处理器, [15]奔腾或更高版本
  • 64 MB RAM(推荐256 MB)
  • IDE / SATA硬盘驱动器,主分区至少为350 MB
  • FAT16 / FAT32主引导分区
  • 2 MB VGA图形适配器(VESA BIOS版本2.0或更高版本)
  • CD - ROM 光驱
  • 标准键盘
  • USB鼠标,PS / 2兼容鼠标或Microsoft鼠标兼容型串行鼠标

值得留意的是,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. ^ Holwerda, Thom. ReactOS 0.3.12 Released. OSNews. 2010-10-20 [2010-11-08]. 
  4. ^ 0.3.13 - ReactOS, Reactos.org, [2014-02-10] 
  5. ^ 0.3.14 - ReactOS, Reactos.org, [2014-02-10] 
  6. ^ 0.3.15 - ReactOS, Reactos.org, [2014-02-10] 
  7. ^ ReactOS 0.3.16 Released, Reactos.org, [2014-02-10] 
  8. ^ ReactOS 0.3.17 Released, Reactos.org, [2014-11-05] 
  9. ^ Hartmut Birr in mailing list ros-dev
  10. ^ ReactOS audit status
  11. ^ Acknowledgements. Wine. [2009-11-15] (英文). 
  12. ^ Ionescu, Alex"The ReactOS Project – An Open Source OS Platform for Learning" University of Waterloo, Canada(2006年2月26日).於2009年12月10日查閱
  13. ^ C., Michele. ReactOS is (not) Windows, Hackmeeting 2009. Milan. 19–21 June 2009 [2009-12-09]. 
  14. ^ Holwerda, Thom. ReactOS Proposes Radical New Win32 Subsystem. OSNews. 2010-01-18 [2010-01-18]. 
  15. ^ Installing. ReactOS. 2014-01-20 [2014-02-10]. 

外部链接[编辑]