當前位置:編程學習大全網 - 編程語言 - 開源Windows系統-Reactos

開源Windows系統-Reactos

ReactOS是壹個開發與Windows NT和Windows 2000應用程序和硬件驅動程序兼容的開源操作系統的項目。盡管該項目目前僅處於內部測試(alpha)的開發階段,但截至2005年6月5日至10月5日,其部分子項目已經實現了目標。

ReactOS主要是用C語言寫的。有些組件是用C++寫的,比如ReactOS文件瀏覽器。

ReactOS的許可協議主要是GNU通用公共許可,少量代碼分發GNU wide通用公共許可、BSD許可等開源許可。

為了確保操作系統的任何部分都不是由看過泄露的微軟Windows源代碼的人編寫的,或者反向工程過程無法達到潔凈室設計標準,ReactOS的主要開發者下令進行全面的源代碼審查。此評論目前已關閉。

發展歷史

開始開發

大約在1996年,壹群開源軟件開發者開始了壹個名為FreeWin95的項目,旨在實現Windows 95的克隆操作系統。當時這個項目只停留在關於系統實現的討論上。

雖然對FreeWin95項目有很高的期望,但直到1997結束,該項目還沒有公開發布任何版本,於是項目協調員Jason Filby與大家聯手,將該項目復興,命名為“ReactOS”,並計劃重新實現Windows NT。1998年2月,ReactOS項目正式啟動,系統內核和基礎驅動開發完成。

代碼審查

為了避免版權起訴,ReactOS必須被清晰完整地區分,並且不是源自Windows,這是壹個需要非常仔細工作的目標。2006年6月5438+10月65438+7月,Hartmut Birr在ReactOS開發者郵件列表中指出,ReactOS包含反編譯的Windows源代碼。所以開發者暫時禁止非開發者進入系統。由於ReactOS是開源軟件,這壹舉動引起了開源社區的不滿。ReactOS的貢獻者沒有受到當時動作的影響。很快所有的軟件開發項目都將免費進入。由於Birr的指控無法得到證實,開發者決定審查源代碼。可能被“汙染”的來源將被封鎖,直到這些來源被檢查並確定沒有問題。

大部分源代碼已經解封,可以繼續維護和開發,評審也在同時進行。

2008年,源代碼已經完全解封。審查也已經完成。維護和開發可以正常繼續。

參加谷歌代碼之夏。

自2006年以來,ReactOS項目已經參加了幾次谷歌代碼之夏。例如,在GSoC 2011中,ReactOS指導了壹個學生項目,將lwIP集成到網絡堆棧中。迄今為止,ReactOS已經五次參加GSoC:2006年,2011,2016,2017,2018。2019也會參加。

公眾集會和示威

俄羅斯政治家維克多·阿爾克斯尼斯(Viktor Alksnis)會見了項目協調員阿列克謝·布拉金(Aleksey Bragin)。阿列克謝·布拉金介紹了這個項目,並進行了演示。演示顯示,ReactOS能夠在2007年運行當時的總指揮官和Mozilla Firefox。這也引起了時任俄羅斯總統德米特裏·梅德韋傑夫的註意。梅德韋傑夫參觀了斯塔夫羅波爾的壹所高中。無獨有偶,ReactOS的開發者馬拉·卡拉托夫(Marat Karatov)也是這所學校的高中生。他借此機會向總統介紹了開源的Windows系統,並要求他資助654.38+0萬歐元。梅德韋傑夫表示,他對ReactOS非常感興趣,並表示將測試資金。

ReactOS社區版

2014年4月,ReactOS項目宣布推出iegogo和基於0.4版本的ReactOS社區版。籌款活動的目標是50,000美元,除此之外還有額外的擴展目標。ReactOS社區版的開發將以社區為中心,ReactOS用戶將投票並出資決定該項目旨在支持哪些軟件和硬件驅動程序。2065438年6月1日,關於Indiegogo的靈活眾籌活動結束,籌集了25141美元用於社區版本的開發,並很快開始投票程序,支持硬件和軟件。

ReactOS Hackfest 2015

ReactOS項目於2015年8月7日至2015年6月2日在德國亞琛舉行了壹次黑客大會。Hackfest成功結束,因為它向ReactOS添加了許多函數。

系統開發

核心發展

ReactOS主要是用C語言寫的,也包含壹些用C ++寫的元素,比如ReactOS Explorer和sound stack。該項目是使用MinGW和Visual Studio編譯的。開發者的目標是使內核和用戶態API與Windows NT 5.2(Windows Server 2003)兼容,並增加對更多應用程序和硬件的支持,並計劃在開發越來越成熟時瞄準Windows的更新版本。DirectX支持是通過ReactX的內部實現來實現的。2D硬件加速渲染在本地完成,而其他繪圖功能被重定向到OpenGL作為權宜之計。開發進度受開發團隊的規模和經驗水平的影響。作為實施Windows 7所需工作量的估計,微軟雇傭了大約65,438+0,000名開發人員組成25個團隊,平均每個團隊有40名開發人員。但截止到2011年9月2日,在Ohloh的ReactOS詞條中,活躍開發者只有33人,這些開發者在12個月的時間裏貢獻了積累,積累了104個之前通過Subversion貢獻了項目代碼的用戶。ReactOS的開發者Michele C .在米蘭舉行的Hackmeeting 2009的演講中指出,大多數開發者在使用ReactOS時都知道Windows架構,沒有任何先驗知識。雖然ReactOS目前主要針對x86/AMD64 PC平臺,但是向ARM架構的遷移“正在進行中”,雖然並沒有產生太多的功能而被放棄。Xbox是IA-32體系結構的壹種變體,通過使用特定於體系結構的方式添加HAL來支持它,盡管隨著PowerPC的出現,不再主動維護它了。

硬件驅動程序堆棧

在硬件驅動方面,例如UniATA項目為ReactOS提供了串行ATA驅動。該項目還試圖使用FullFAT庫重寫其FAT可安裝文件系統。ReactOS使用Haiku的USB堆棧作為參考,並作為其USB支持的基礎。網絡ReactOS的網絡棧建立在FreeBSD中OSKit網絡棧端口的TCP部分和內部開發的面向包的協議(如IP)的實現上。後來,lwIP被集成到ReactOS的網絡棧中。Samba/Samba TNG項目提供了Windows網絡服務,如LSASS、SAM、NETLOGON和print spooler,作為開放源代碼的替代方案。

與葡萄酒項目合作

ReactOS和Wine項目* * *享受在本地運行二進制Windows軟件的目標,所以他們可以* * *享受很多依賴和開發。ReactOS使用了Wine項目的壹部分,因此它可以受益於Wine在實現Win32 API方面的進展。盡管由於不同的架構,Wine的NTDLL、USER32、KERNEL32、GDI32和ADVAPI32組件不能被ReactOS直接使用,但代碼片段和其他部分可以在兩個項目之間共享。然而,內核是由ReactOS單獨開發的,因為Wine依賴於現有的類Unix內核。。

此外,ReactOS還有另壹個實驗性的Arwinss團隊,用另壹種方式來構建Win32 API,這樣可以更好的支持USER32和GDI32。ReactOS原有的Win32子系統完全基於Windows的等價性,但Arwinss通過合並ReactOS和Wines原有的Win32子系統,很好地利用了Wines的系統兼容性。這樣,Arwinss允許用戶通過遠程X服務器進行顯示,而不必使用硬件顯示屏。

影響和評估

以下關於ReactOS項目的批評,提出了他們不相信ReactOS會成為壹個有價值項目的幾個理由。其中有人指出,以兼容Windows NT 4.0作為ReactOS的發布目標是有局限性的,因為NT 4.0評價不好,而且已經過時。

在回答中,有人提出,雖然目前的目標是與Windows nt 4.0兼容,但Windows中基於NT架構的系統在系統級別上與NT 4.0高度相似(例如,Windows 2000、Windows XP、Windows Server 2003)。所以,如果想兼容後續的Windows版本,只要完成NT 4.0的目標,剩下的就簡單了。正因如此,這壹批評的回答者表示,以NT 4.0的兼容性為裏程碑不是限制,而是未來發展的基礎。

還有人批評我們已經有幾個基於Unix的操作系統(Linux和不同版本的BSD)。與其創建壹個新的,不如集中精力改進舊的,努力把WINE做好,讓現有的WINDOWS應用在上面運行得更好。然而,ReactOS開發者和其他倡導者認為,類UNIX操作系統不壹定是唯壹最好的操作系統類型。NT的設計包含了很多概念是Unix工作模式的改進,壹個在更低層次上更像Windows的操作系統(也就是說,它被設計成類似於Windows,而不是執行壹個應用程序並試圖將另壹個操作系統變成Windows)將有更好的機會更廣泛地兼容現有的Windows應用程序和(尤其是)硬件驅動程序。

未來目標

硬件要求

值得註意的是,ReactOS還可以運行在可以模擬上述硬件的軟件中,比如Virtual PC、VMware、Bochs或者QEMU。

看到Windows NT 4.0可以運行在除i386之外的MIPS、Alpha AXP、PowerPC架構上,Windows XP、Windows Server 2003等NT衍生操作系統已經移植到不同的硬件架構上(如x86-64、IA-32、IA-64),ReactOS開發者開始關註可移植性。比如0.2.5的發布版本中已經加入了對IA-32架構的變種Xbox平臺的支持,而直到2006年上半年,PowerPC端口和Xen端口的項目還在進行中。

  • 上一篇:編寫基於Socket的網絡服務程序和客戶程序(高分哦)
  • 下一篇:web開發中哪個後端語言開發效率最高_web後端開發主要用到哪些技術
  • copyright 2024編程學習大全網