開(kāi)源的Windows系統(tǒng)——ReactOS
開(kāi)源的Windows系統(tǒng)——ReactOS
ReactOS 是一個(gè)開(kāi)發(fā)與Windows NT和Windows 2000應(yīng)用程序和硬件驅(qū)動(dòng)程序兼容的開(kāi)源操作系統(tǒng)的項(xiàng)目。此項(xiàng)目當(dāng)前雖然只是處于 內(nèi)部測(cè)試(alpha) 開(kāi)發(fā)狀態(tài),但到2005年1月其中一些子項(xiàng)目已經(jīng)完成了目標(biāo)。
ReactOS主要是由C語(yǔ)言編寫(xiě)。
部分組件則由C++編寫(xiě),例如ReactOS 文件瀏覽器。 ReactOS的許可協(xié)議主要為GNU通用公共許可證,也有少量代碼以GNU寬通用公共許可證、BSD許可證之類(lèi)的開(kāi)源許可證發(fā)行。 為確保操作系統(tǒng)沒(méi)有任何一部分是看過(guò)泄漏出來(lái)的微軟 Windows 源碼的人所寫(xiě),或者逆向工程的過(guò)程達(dá)不到凈室設(shè)計(jì)標(biāo)準(zhǔn),一個(gè)全盤(pán)的源碼審查由ReactOS主要開(kāi)發(fā)者下令展開(kāi)。此審查當(dāng)前已經(jīng)結(jié)束。
發(fā)展歷程 啟動(dòng)開(kāi)發(fā) 大約在1996年時(shí),一群開(kāi)源軟件開(kāi)發(fā)者啟動(dòng)了一個(gè)名為 FreeWin95 的項(xiàng)目,旨在實(shí)現(xiàn)一個(gè)Windows 95的克隆操作系統(tǒng)。這個(gè)項(xiàng)目當(dāng)時(shí)只停留在關(guān)于系統(tǒng)實(shí)現(xiàn)的討論上。 雖然對(duì)于 FreeWin95 項(xiàng)目期待很高,但直到 1997 年末,項(xiàng)目還沒(méi)有公開(kāi)發(fā)布任何版本,于是項(xiàng)目協(xié)調(diào)員Jason Filby 聯(lián)合大家重振該項(xiàng)目并起了一個(gè)新名稱 “ReactOS” ,并**重新實(shí)現(xiàn) Windows NT。
1998年 2 月 ReactOS 項(xiàng)目正式啟動(dòng),開(kāi)始開(kāi)發(fā)系統(tǒng)內(nèi)核和基本的驅(qū)動(dòng)程序。 代碼審查 為了避免版權(quán)**,ReactOS 必須明確地完全區(qū)分并且不派生于 Windows,這是一個(gè)需要非常謹(jǐn)慎工作的目標(biāo)。2006年1月17日,Hartmut Birr 在 ReactOS 開(kāi)發(fā)者郵件列表中指出 ReactOS 包含有反編譯的 Windows 源碼。
因此開(kāi)發(fā)者暫時(shí)禁止非開(kāi)發(fā)者進(jìn)入系統(tǒng)。鑒于 ReactOS 是開(kāi)放源碼軟件,此舉引起開(kāi)放源碼社群的不滿。ReactOS 的貢獻(xiàn)者沒(méi)受當(dāng)時(shí)的舉動(dòng)影響。
不久后所有軟件開(kāi)發(fā)工程都能自由進(jìn)入了。由于 Birr 的指摘未能證實(shí),開(kāi)發(fā)者決定審查源碼。 可能“受污染”的源碼會(huì)被封鎖,直到那些源碼經(jīng)審查后確定無(wú)問(wèn)題。 大部分的源碼已解封,維護(hù)和開(kāi)發(fā)都可繼續(xù)進(jìn)行,而審查亦同時(shí)進(jìn)行。
2008年,源碼已經(jīng)全部解封。審查也已經(jīng)全部結(jié)束。維護(hù)和開(kāi)發(fā)得以正常繼續(xù)。 參與 Google Summer of Code 從 2006 年開(kāi)始,ReactOS 項(xiàng)目參與了幾次 Google Summers of Code。
例如,在GSoC 2011 中, ReactOS 指導(dǎo)了一個(gè)將 lwIP 集成到**堆棧中的學(xué)生項(xiàng)目。迄今為止,ReactOS曾在 GSoC 參與過(guò)五次:2006年,2011年,2016 年,2017年 和 2018 年。2019 年也將參與。 公開(kāi)演示 ***的政治人物 Viktor Alksnis 會(huì)見(jiàn)了項(xiàng)目協(xié)調(diào)員 Aleksey Bragin,Aleksey Bragin介紹了該項(xiàng)目并演示了該項(xiàng)目,演示中顯示 ReactOS 在 2007 年已經(jīng)可以運(yùn)行當(dāng)時(shí)的 Total Commander 和 Mozilla Firefox。
它還吸引了時(shí)任*****梅德韋杰夫(Dmitry Medvedev)的關(guān)注。 梅德韋杰夫訪問(wèn)了斯塔夫羅波爾地區(qū)的一所高中,巧合的是 ReactOS 開(kāi)發(fā)者 Marat Karatov 正是該學(xué)校的高中生,他借此機(jī)會(huì)向**介紹了開(kāi)源 Windows 系統(tǒng),并請(qǐng)求**資助 100 萬(wàn)歐元。梅德韋杰夫稱對(duì) ReactOS 很感興趣,表示會(huì)考驗(yàn)資助事宜。
ReactOS 社區(qū)版 2014年4月,ReactOS 項(xiàng)目宣布推出 iegogo活動(dòng),推出基于 0.4版本的 ReactOS Community Edition。籌資活動(dòng)的目標(biāo)是50,000美元,除此之外還有額外的伸展目標(biāo)。ReactOS Community Edition 的開(kāi)發(fā)將以社區(qū)為中心,ReactOS用戶投票和資金決定項(xiàng)目旨在支持哪些軟件和硬件驅(qū)動(dòng)程序。
2014年 6 月 1 日,關(guān)于Indiegogo的靈活眾籌活動(dòng)結(jié)束時(shí)籌集了25,141美元用于社區(qū)版的開(kāi)發(fā),并且不久后啟動(dòng)了支持硬件和軟件的投票過(guò)程。 ReactOS Hackfest 2015 ReactOS 項(xiàng)目于2015年8月7日至12日在德國(guó)亞琛市舉辦了一場(chǎng)Hackfest。Hackfest 圓滿結(jié)束,因?yàn)樗鼮?ReactOS 增加了許多功能。 系統(tǒng)開(kāi)發(fā) 核心開(kāi)發(fā) ReactOS主要用C語(yǔ)言進(jìn)行編寫(xiě),另外包含一些用 C ++ 編寫(xiě)的元素,如 ReactOS Explorer 和聲音棧。
該項(xiàng)目使用 MinGW 和 Visual Studio 進(jìn)行編譯。 開(kāi)發(fā)人員的目標(biāo)是使內(nèi)核和用戶模式API與Windows NT 5.2(Windows Server 2003)兼容,并增加對(duì)更多應(yīng)用程序和硬件的支持,并**在開(kāi)發(fā)日趨成熟時(shí)針對(duì)更新版本的Windows。DirectX支持是通過(guò)內(nèi)部實(shí)施 ReactX進(jìn)行的。
2D硬件加速渲染是本機(jī)完成的,而其他繪圖功能則重定向到OpenGL作為權(quán)宜之計(jì)解決方案。 開(kāi)發(fā)進(jìn)度受開(kāi)發(fā)團(tuán)隊(duì)規(guī)模及其經(jīng)驗(yàn)水平的影響。作為對(duì)實(shí)施 Windows 7所需工作量的估計(jì),微軟雇傭了大約1,000名開(kāi)發(fā)人員,組成了25個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)平均有40名開(kāi)發(fā)人員。但截至2011年9月2日,在 Ohloh 的 ReactOS條目中,通過(guò)“非常大,活躍開(kāi)發(fā)者只有 33 位,這些開(kāi)發(fā)人員在 12 個(gè)月的時(shí)間內(nèi)貢獻(xiàn)了累計(jì),并且累積了104個(gè)以前通過(guò) Subversion 從項(xiàng)目開(kāi)始為代碼貢獻(xiàn)代碼的用戶。
ReactOS 開(kāi)發(fā)人員 Michele C.在米蘭舉辦的 Hackmeeting 2009 上的演講中指出,大多數(shù)開(kāi)發(fā)人員在使用ReactOS時(shí)都了解 Windows體系結(jié)構(gòu),并且沒(méi)有任何先驗(yàn)知識(shí)。 雖然ReactOS當(dāng)前主要針對(duì) x86 / AMD64 PC 平臺(tái),但是,移植到ARM 架構(gòu)的努力“正在進(jìn)行中”,雖然它沒(méi)有產(chǎn)生太多功能而被放棄了。支持的的Xbox,變體IA-32體系結(jié)構(gòu),是通過(guò)使用一個(gè)特定于體系結(jié)構(gòu)的加入HAL,雖然這一點(diǎn),與端口沿的PowerPC,不再積極維護(hù)。
硬件驅(qū)動(dòng)程序堆棧 在硬件驅(qū)動(dòng)程序方面,例如UniATA項(xiàng)目為ReactOS 提供串行ATA驅(qū)動(dòng)程序。該項(xiàng)目還嘗試使用FullFAT庫(kù)重寫(xiě)其FAT可 安裝文件系統(tǒng)。ReactOS利用 Haiku 的 USB 堆棧作為參考?。
虛擬軟件怎么樣?
虛擬軟件有的是在既有操作系統(tǒng)上執(zhí)行(如QEMU、Virtual PC),有的則比操作系統(tǒng)更先安裝至電腦中(比操作系統(tǒng)更具主體性,即Hypervisor型態(tài),部分英文文章也寫(xiě)成:Supervisor,如VMWare ESX、Virtual Server),一般是在一部電腦上模擬多個(gè)虛擬化環(huán)境,然而更先進(jìn)者也能將多部電腦以虛擬化技術(shù)融合成單一的虛擬化客體環(huán)境。 當(dāng)然!最理想的虛擬軟件是不需要對(duì)過(guò)往的軟件、硬件進(jìn)行任何修改,但不得已的情形下依然需要調(diào)修過(guò)的新版軟件或特定的硬件系統(tǒng)才能使用,或全效發(fā)揮運(yùn)用,如Xen(需改版調(diào)修操作系統(tǒng))、傳統(tǒng)虛擬機(jī)VM2000(需要或只適合特定的電腦硬件系統(tǒng))、新型虛擬機(jī)ShadoWin等。
傳統(tǒng)虛擬機(jī)Vmvare等更適合企業(yè)級(jí)用戶及IT測(cè)試人員使用,安裝使用過(guò)程偏復(fù)雜龐大,而新型虛擬機(jī)ShadoWin等則更適合普通PC用戶使用,與安裝應(yīng)用級(jí)軟件類(lèi)似,可以讓普通用戶了解并樂(lè)于使用虛擬化軟件。
此外,技術(shù)層次上較簡(jiǎn)單,并非以模擬出完整硬件以供客體操作系統(tǒng)運(yùn)作,而是指模擬出一個(gè)供過(guò)往應(yīng)用程序、驅(qū)動(dòng)程序的兼容執(zhí)行環(huán)境的,也屬于虛擬化軟件的一類(lèi),在此暫且將其分類(lèi)到“模擬軟件”的子分類(lèi)中,如WINE、ReactOS、eUnobox等,此外如.NET的CLR、Java的JVM/JRE也屬此類(lèi)。傳統(tǒng)虛擬機(jī)運(yùn)行模式 因?yàn)?Virtual Machine 是模擬一個(gè)空的機(jī)器,因此在VM里運(yùn)行的應(yīng)用程序需要調(diào)用硬件資源時(shí)百科(如讀寫(xiě)文件、顯示窗體等),下達(dá)的每一個(gè)指令都必須透過(guò)層層重復(fù)的轉(zhuǎn)換與傳達(dá)才能正確運(yùn)行。因此應(yīng)用程序的運(yùn)行效能較差,占用的資源也較大。 與一般的實(shí)體機(jī)相同,VM 內(nèi)數(shù)據(jù)的增刪或修改,皆直接寫(xiě)入VM內(nèi)的虛擬硬盤(pán)中,VM無(wú)法區(qū)分使用者與系統(tǒng)原有的數(shù)據(jù)、配置與程序,所以無(wú)法只對(duì)使用者的數(shù)據(jù)、配置與程序備份,甚至共享或處理。
計(jì)算機(jī)操作系統(tǒng)分類(lèi),例子,特點(diǎn),主要內(nèi)容
目前微機(jī)上常見(jiàn)的操作系統(tǒng)有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。但所有的操作系統(tǒng)具有并發(fā)性、共享性、虛擬性和不確定性四個(gè)基本特征。
操作系統(tǒng)大致可分為6種類(lèi)型。
①簡(jiǎn)單操作系統(tǒng)。它是計(jì)算機(jī)初期所配置的操作系統(tǒng),如IBM公司的磁盤(pán)操作系統(tǒng)DOS/360和微型計(jì)算機(jī)的操作系統(tǒng)CP/M等。這類(lèi)操作系統(tǒng)的功能主要是操作命令的執(zhí)行,文件服務(wù),支持高級(jí)程序設(shè)計(jì)語(yǔ)言編譯程序和控制外部設(shè)備等。②分時(shí)系統(tǒng)。
它支持位于不同終端的多個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī),彼此獨(dú)立互不干擾,用戶感到好像一臺(tái)計(jì)算機(jī)全為他所用。③實(shí)時(shí)操作系統(tǒng)。它是為實(shí)時(shí)計(jì)算機(jī)系統(tǒng)配置的操作系統(tǒng)。
其主要特點(diǎn)是資源的分配和調(diào)度首先要考慮實(shí)時(shí)性然后才是效率。此外,實(shí)時(shí)操作系統(tǒng)應(yīng)有較強(qiáng)的容錯(cuò)能力。④**操作系統(tǒng)。
它是為計(jì)算機(jī)**配置的操作系統(tǒng)。在其支持下,**中的各臺(tái)計(jì)算機(jī)能互相通信和共享資源。其主要特點(diǎn)是與**的硬件相結(jié)合來(lái)完成**的通信任務(wù)。
⑤分布操作系統(tǒng)。它是為分布計(jì)算系統(tǒng)配置的操作系統(tǒng)。它在資源管理,通信控制和操作系統(tǒng)的結(jié)構(gòu)等方面都與其他操作系統(tǒng)有較大的區(qū)別。由于分布計(jì)算機(jī)系統(tǒng)的資源分布于系統(tǒng)的不同計(jì)算機(jī)上,操作系統(tǒng)對(duì)用戶的資源需求不能像一般的操作系統(tǒng)那樣等待有資源時(shí)直接分配的簡(jiǎn)單做法而是要在系統(tǒng)的各臺(tái)計(jì)算機(jī)上搜索,找到所需資源后才可進(jìn)行分配。
對(duì)于有些資源,如具有多個(gè)副本的文件,還必須考慮一致性。所謂一致性是指若干個(gè)用戶對(duì)同一個(gè)文件所同時(shí)讀出的數(shù)據(jù)是一致的。為了保證一致性,操作系統(tǒng)須控制文件的讀、寫(xiě)、操作,使得多個(gè)用戶可同時(shí)讀一個(gè)文件,而任一時(shí)刻最多只能有一個(gè)用戶在修改文件。分布操作系統(tǒng)的通信功能類(lèi)似于**操作系統(tǒng)。
由于分布計(jì)算機(jī)系統(tǒng)不像**分布得很廣,同時(shí)分布操作系統(tǒng)還要支持并行處理,因此它提供的通信機(jī)制和**操作系統(tǒng)提供的有所不同,它要求通信速度高。分布操作系統(tǒng)的結(jié)構(gòu)也不同于其他操作系統(tǒng),它分布于系統(tǒng)的各臺(tái)計(jì)算機(jī)上,能并行地處理用戶的各種需求,有較強(qiáng)的容錯(cuò)能力。⑥智能操作系統(tǒng)(見(jiàn)智能軟件)。操作系統(tǒng)大全早期操作系統(tǒng)(專利保護(hù))TRS-DOS,ROM OS\’s TI99-4 Commodore PET,64,和 VIC-20, **套IBM-PC 蘋(píng)果電腦 Sinclair Micro和QnX等 非Unix商業(yè)操作系統(tǒng)CPM操作系統(tǒng) MP/M-80 UCSD P-system Mini-FLEX SSB-DOS CP/M-86 DR-DOS FreeDOS MS-DOS PC-DOS Mach 由卡納尼基梅隆大學(xué)研究 L4微內(nèi)核 第二代微內(nèi)核 CHORUS Choices Multics OS-9 NSJ Netware:一種**服務(wù)器操作系統(tǒng) Unix及類(lèi)似系統(tǒng)A/UX(Apple UNIX) Unix 微軟Xenix ChorusOS Cromix UNIflex OS-9 IBM的AIX BSD FreeBSD NetBSD OpenBSD DragonFly BSD PC-BSD Digital UNIX,即之后康柏Tru64 DNIX HP的HP-UX GNU/Hurd SGI的IRIX Inferno Linux(或稱GNU/Linux) Mac OS X MenuetOS Minix OSF/1 Plan9 SCO的SCO UNIX Sun的SunOS,即之后的Solaris System V Ultrix UniCOS 麒麟操作系統(tǒng)(Kylin),由國(guó)防科技大學(xué)、中軟公司、聯(lián)想公司、浪潮公司和民族恒星公司五家單位合作研制的服務(wù)器操作系統(tǒng) OS/390 z/OS Syllable 其他AcornArthur ARX RISC OS RISCiX AmigaAmigaOS Atari STTOS MultiTOS MiNT 蘋(píng)果電腦(Apple/Macintosh)Apple DOS ProDOS Mac OS Mac OS X pink OS BeOS A/UX BeBeOS BeIA Digital/康柏(Compaq)AIS OS-8 RSTS/E RSX-11 RT-11 TOPS-10 TOPS-20 VMS(后更名為OpenVMS) IBMOS/2 AIX OS/400 OS/390 VM/CMS DOS/VSE VSE/SP VSE/ESA OS/360 MFT MVT SVS MVS TPF ALCS z/OS PC-DOS pink OS 微軟(Microsoft)MS-DOS Xenix Microsoft Bob 基于MS-DOS操作系統(tǒng)的Windows Windows 1.0 Windows 2.0 Windows 3.1 Windows 95 Windows 98 Windows ME Windows NT Windows NT 3.5 Windows NT 4 Windows 2000 Windows XP Windows XP SP1Windows XP SP2Windows XP SP3Windows XP Media Center Edition Windows XP Home Edition Windows XP Tablet PC EditionWindows XP Professional Windows XP Professional x64 Edition Windows Server 2003 Windows Server 2003 64-bit Edition Windows Vista Windows Vista SP1Windows Vista Home Basic Windows Vista Home Premium Windows Vista Business Windows Vista Ultimate Windows Vista Enterprise Windows Vista Starter NovellNetWare Unixware SUSE Linux NeXTNEXTSTEP(即之后的Mac OS X) Plan 9 Inferno Prime ComputerPrimos 西門(mén)子BS2000 – 用于西門(mén)子公司的大型主機(jī)。
SINIX(也稱Reliant UNIX) – 用于西門(mén)子公司的UNIX電腦系統(tǒng)。