ReactOS 是一個開發與 Windows NT 和 Windows 2000 應用程式和硬體驅動程式相容的開源作業系統的專案。 ReactOS 主要是由 C 語言編寫。部分元件則由 C 編寫，例如 ReactOS 檔案瀏覽器。 ReactOS 的許可協議主要為 GNU 通用公共許可證，也有少量程式碼以 GNU 寬通用公共許可証、BSD 許可證之類的開源許可證發行。 為確保作業系統沒有任何一部份是看過洩漏出來的微軟 Windows 原始碼的人所寫，或者逆向工程的過程達不到淨室設計標準，一個全盤的原始碼審查由 ReactOS 主要開發者下令展開。此審查目前已經結束。 該專案從發起至今已有 26 年，但由於種種原因，目前仍然處於 alpha 狀態。 發展歷程 啟動開發 大約在 1996 年時，一群開源軟體開發者啟動了一個名為 FreeWin95 的專案，旨在實現一個 Windows 95 的克隆作業系統。這個專案當時只停留在關於系統實現的討論上。 雖然對於 FreeWin95 專案期待很高，但直到 1997 年末，專案還沒有公開發布任何版本，於是專案協調員 Jason Filby 聯合大家重振該專案並起了一個新名稱 ReactOS ，並計劃重新實現 Windows NT。1998 年 2 月 ReactOS 專案正式啟動，開始開發系統核心和基本的驅動程式。 程式碼審查 為了避免版權起訴，ReactOS 必須明確地完全區分並且不衍生於 Windows，這是一個需要非常謹慎工作的目標。2006 年 1 月 17 日，Hartmut Birr 在 ReactOS 開發者郵件列表中指出 ReactOS 包含有反編譯的 Windows 原始碼。因此開發者暫時禁止非開發者進入系統。鑑於 ReactOS 是開放原始碼軟體，此舉引起開放原始碼社群的不滿。ReactOS 的貢獻者沒受當時的舉動影響。 不久後所有軟體開發工程都能自由進入了。由於 Birr 的指摘未能證實，開發者決定審查原始碼。 可能 受汙染 的原始碼會被封鎖，直到那些原始碼經審查後確定無問題。 大部分的原始碼已解封，維護和開發都可繼續進行，而審查亦同時進行。 2008 年，原始碼已經全部解封。審查也已經全部結束。維護和開發得以正常繼續。 參與 Google Summer of Code 從 2006 年開始，ReactOS 專案參與了幾次 Google Summer of Code。例如，在 GSoC 2011 中， ReactOS 指導了一個將 lwIP 整合到網路堆疊中的學生專案。迄今為止，ReactOS 曾在 GSoC 參與過五次：2006 年，2011 年，2016 年，2017 年 和 2018 年。2019 年也將參與。 公開演示 俄羅斯的政治人物 Viktor Alksnis 會見了專案協調員 Aleksey Bragin，Aleksey Bragin 介紹了該專案並演示了該專案，演示中顯示 ReactOS 在 2007 年已經可以運行當時的 Total Commander 和 Mozilla Firefox。 它還吸引了時任俄羅斯總統梅德韋傑夫（Dmitry Medvedev）的關注。 梅德韋傑夫訪問了斯塔夫羅波爾地區的一所高中，巧合的是 ReactOS 開發者 Marat Karatov 正是該學校的高中生，他藉此機會向總統介紹了開源 Windows 系統，並請求總統資助 100 萬歐元。梅德韋傑夫稱對 ReactOS 很感興趣，表示會考慮資助事宜。 ReactOS 社群版 2014 年 4 月，ReactOS 專案宣佈推出 iegogo 活動，推出基於 04 版本的 ReactOS Community Edition。籌資活動的目標是 50000 美元，除此之外還有額外的伸展目標。ReactOS Community Edition 的開發將以社群為中心，ReactOS 使用者投票和資金決定專案旨在支援哪些軟體和硬體驅動程式。2014 年 6 月 1 日，關於 Indiegogo 的靈活眾籌活動結束時籌集了 25141 美元用於社群版的開發，並且不久後啟動了支援硬體和軟體的投票過程。 ReactOS Hackfest 2015 ReactOS 專案於 2015 年 8 月 7 日至 12 日在德國亞琛市舉辦了一場 Hackfest。Hackfest 圓滿結束，因為它為 ReactOS 增加了許多功能。 系統開發 核心開發 ReactOS 主要用 C 語言 進行編寫，另外包含一些用 C 編寫的元素，如 ReactOS Explorer 和聲音棧。該專案使用 MinGW 和 Visual Studio 進行編譯。開發人員的目標是使核心和使用者模式 API 與 Windows NT 52（Windows Server 2003）相容，並增加對更多應用程式和硬體的支援，並計劃在開發日趨成熟時針對更新版本的 Windows。DirectX 支援是透過內部實施 ReactX 進行的。2D 硬體加速渲染是本機完成的，而其他繪圖功能則重定向到 OpenGL 作為權宜之計解決方案。 開發進度受開發團隊規模及其經驗水平的影響，以 Windows 7 開發所需工作量的估計，微軟僱傭了大約 1000 名開發人員，組成了 25 個團隊，每個團隊平均有 40 名開發人員。但截至 2011 年 9 月 2 日，在 Ohloh 的 ReactOS 網頁上列出「非常大且活躍的開發者團隊」包含在 12 個月內貢獻程式碼的 33 位開發者、及從 ReactOS 專案開始後於 Apache Subversion 上貢獻的 104 位使用者。ReactOS 開發人員 Michele C 在米蘭舉辦的 Hackmeeting 2009 上的演講中指出，大多數開發人員在使用 ReactOS 時都瞭解 Windows 體系結構，並且沒有任何先驗知識。 ReactOS 目前主要針對 x86 AMD64 架構平臺，移植到 ARM 架構的努力則「正在進行中」，雖然他因沒什麼有效產出而被放棄維護了。對 Xbox（x86 體系的變體架構）則經由使用特定架構的 HAL 匯入；雖然如此 PowerPC 架構的支線則不再積極維護。 硬體驅動程式堆疊 在硬體驅動程式方面，例如 UniATA 專案為 ReactOS 提供序列 ATA 驅動程式。該專案還嘗試使用 FullFAT 庫重寫其 FAT 可 安裝檔案系統。ReactOS 利用 Haiku 的 USB 堆疊作為參考，並作為其 USB 支援的基礎。 網路 ReactOS 的網路堆疊構建在 FreeBSD 中 OSKit 網路堆疊埠的 TCP 部分，以及內部開發的面向資料包協議（如 IP）的實現。後來，lwIP 被整合到 ReactOS 的網路堆疊中。Samba Samba TNG 專案已經提供了 LSASS，SAM，NETLOGON 和列印假離線等 Windows 網路服務作為開源替代方案。 與 Wine 專案合作 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 的 Win32 子系統及 Wine 的 Win32 子系統的架構，以好好利用 Wine 的系統相容性。這樣，Arwinss 就可以讓使用者透過一個遙距的 X server 作顯示，而無需硬性規定必須要用硬體上的顯示屏。 版本紀錄 系統版本 釋出日期 釋出資訊 020 20040125 第一個執行 GUI 的釋出版本 021 20040303 漏洞修復 022 20040427 023 20040626 024 20040913 025 20050102 026 20050409 027 20050821 028 20051029 檢測 VMWare，重寫 CSRSS 029 20051222 漏洞修復 030 20060827 第一個支援網路的官方版本 031 20070310 包含了程式管理器，開始重寫核心 032 跳過 建立了這個分支但從沒有釋出 033 20070912 核心和 win32k 改進 034 20080122 重寫支援了登錄檔、遠端桌面以及即插即用 035 20080630 漏洞修復 036 20080806 支援 RTL 037 20081104 改善 x8664 MSVC 新棧 038 20090204 在 LiveCD 中引入了 PSEH 和多分割槽 HDD 模式支援 039 20090426 24MB 的最小 RAM，加快了 hyperspace 超級空間 對映，開始支援音效 0310 20090705 開始支援 SATA，USB 鍵盤 滑鼠支援，畫圖的複製，開始支援 MSVC 0311 20091216 重寫 kdcom；中文 韓文字型；相容性更新；聲音系統改良 0312 20101020 重寫自陷處理程式；重寫定時器和訊息處理，支援 NMI；支援 SxS；部分支援 EMS 0313 20110322 重寫堆管理器；改善了對 SATA 的支援，修復了圖形介面的問題 0314 20120207 預設啟用 ACPI，WiFi 支援（包含未加密的與 WEP），主題支援，新的 TCPIP 驅動程式，MSVC 相容性改進，支援 ScatterGatherDMA 操作，shell32 重寫 0315 20130530 對於滑鼠，鍵盤和儲存裝置的 USB 支援、工作階段管理重寫、跟隨著較新 UniATA 驅動程式的 AHCI 支援、ReactOS 記憶體管理模組已經取代了幾乎所有其他的記憶體管理功能、使用 WinDbg 對 ReactOS 元件進行除錯的初步支援、基於從 AutoHotkey 應用程式測試套件處所得的結果進行了改進、對數個附帶的驅動程式以驅動程式驗證器執行後的結果進行了錯誤修復 0316 20140206 重寫 CSRSS，主題支援改善，RTL8139 的網絡卡驅動程式，讓 ReactOS 的支援較新版本的 QEMU 的開箱即用 0317 20141105 引入了 NTVDM，改善字型，漏洞修復 040 20160216 對 USB 更好的支援，完全實現了新的資源管理器，改善了網路以及使用者友好的 wifi 設定，更好的音效支援 048 20180417 新增特性：氣球通知，通知托盤，命令自動補全，新的 NTFS 驅動程式，故障轉儲報告以及對 NT6 軟體的實驗性支援 049 20180723 再次實現自我託管功能。 0410 20181106 支援從 Btrfs 啟動。 0411 20190304 電源管理的驅動程式。支援對已安裝的 ReactOS 的更新。改善 SATA 支援。 0412 20190923 核心的改進、windowsnapping feature、字型改進、Intel e1000 網路驅動程式、使用者模式 DLL、新主題。 0413 20200409 新的 USB 堆疊，最佳化 FreeLoader 中 FAT 驅動程式，新軟體：Accessibility Utility Manager。 含義： 顏色 含義 紅 停止支援的版本 綠 當前版本 藍 未來版本 灰 跳過的版本 影響與評價 下面一些關於 ReactOS 專案的批評提出幾條為什麼他們不相信 ReactOS 會成為一個有價值的專案的原因。其中，有人指出把與 Windows NT 40 相容作為 ReactOS 的釋出目標是一個侷限，因為 NT 40 評價不佳而且它已經過時了。 作為回覆，有人提出雖然目前是把與 Windows NT 40 相容作為目標，但是，Windows 後來基於 NT 架構的系統都與 NT 40 在系統層次上高度相似（例如：Windows 2000 Windows XP Windows Server 2003）。因此，想要與後續的 Windows 版本相容，只要 NT 40 的目標完成，剩下都簡單了。 以此為由，該批評的回覆者說把 NT 40 的相容作為里程碑並不是一個侷限，而是未來開發的基礎。 其它人則批評認為我們已經有好幾個基於 Unix（Linux 及不同版本的 BSD）的作業系統，與其再建立一個新的，不如集中精力改善舊的，努力做好 WINE，讓現有的 WINDOWS 應用程式在其上執行得更好。但是，ReactOS 開發者及其他擁護者辯解說，UNIX 類作業系統不一定是唯一的最好的作業系統型別。NT 的設計含有很多概念是 Unix 工作方式的改進，而且一個在更低層次更似 Windows 的作業系統（即是設計成與 Windows 相似，而非執行某某應用程式，嘗試把另一個作業系統變成 Windows）將更有機會成功達到更廣闊地相容現有的 Windows 應用程式和（特別是）硬體驅動程式。 未來目標 對 NTFS 檔案系統的原生支援，尤其是在安裝和啟動 ReactOS 的時候 對使用 FAT32 檔案系統格式化大於 32 GiB 的分割槽的原生支援 對使用 NTFS 檔案系統格式化分割槽的原生支援 對使用 exFAT 檔案系統格式化分割槽的原生支援 對分割槽對映方案 GUID 磁碟分割表的原生支援，尤其是當使用 UEFI 韌體在 PC 上安裝和啟動 ReactOS 時 對固態硬碟的原生支援 基於先進格式化對硬碟的原生支援，尤其是 4Kn 對觸屏的原生支援 對 USB 30 的原生支援 對 Thunderbolt 的原生支援 硬體需求 x86 或 x8664 的相容處理器， 奔騰或更高版本 64 MB RAM（推薦 256 MB） IDE SATA 硬碟驅動器，主分割槽至少為 350 MB FAT16 FAT32 主引導分割槽 2 MB VGA 圖形介面卡（VESA BIOS 版本 20 或更高版本） CD ROM 光碟機 標準鍵盤 USB 滑鼠，PS 2 相容滑鼠或 Microsoft 滑鼠相容型序列滑鼠 值得留意的是，ReactOS 亦可在能模擬上述硬體的軟體內運作，比如 Virtual PC、VMware、Bochs 或 QEMU。 眼見 Windows NT 40 可在 i386 以外的 MIPS、Alpha AXP 和 PowerPC 架構執行，而 NT 衍生的作業系統如 Windows XP 和 Windows Server 2003 又已被移植到不同的硬體架構上（例如 x8664、IA32 及 IA64），ReactOS 開發者亦開始注意可移植性。譬如對 IA32 架構變種 Xbox 平臺的支援，已加入 025 釋出版，而直到 2006 年上半年，PowerPC port 和 Xen port 的工程仍在努力。 參見 Windows NT Wine 模擬器 參考資料 外部連結 ReactOS 主頁 ReactOS Wiki Interview with Steven Edwards of ReactOS and WINE WineHQ Wine Development HQ Category 自由作業系統 Category 用 C 程式設計的自由軟體 Category 用 C 程式設計的自由軟體 CategoryLiveCD Category 未來軟體 Category 視窗系統