目錄
- 一 下載並安裝VS2012
- 二 下載並安裝WDK80
- 三 下載ReactOS0315源碼
- 四 下載並安裝RosBE211
- 五 用RosBE命令行編譯ReactOS源碼
- 六 用VS2012編譯ntoskrnl模塊
- 七 制作ReactOS安裝盤
- 八 用VirtualBox安裝ReactOS
- 九 建立調試環境
- 十 調試ReactOS源碼
一. 下載並安裝VS2012
我安裝的是VS2012_ULT_chs.iso, 網上隨便下載
二. 下載並安裝WDK8.0
下載地址: http://msdn.microsoft.com/zh-cn/windows/hardware/hh852365
安裝完之后打開VS2012, 會發現新建項目中多了一些Driver項目, 菜單欄上也多了一個菜單項DRIVER
三. 下載ReactOS0.3.15源碼
下載地址: http://download.reactos.org/reactos/ReactOS/0.3.15/
下載ReactOS-0.3.15-REL-src.zip, 解壓縮到D:\ReactOS
四. 下載並安裝RosBE2.1.1
下載地址: http://download.reactos.org/reactos/RosBE-Windows/i386/2.1.1/
下載RosBE-2.1.1.exe, 安裝完之后記得導入生成的注冊表文件, 然后把bin目錄添加到環境變量path中
我的安裝路徑為D:\ProgramFiles\RosBE, 把D:\ProgramFiles\RosBE\Bin添加到環境變量path中
五. 用RosBE命令行編譯ReactOS源碼
1. 雙擊ReactOS Build Environment進入編譯環境, 因為安裝RosBE時選擇了ReactOS源碼位置, 所以自動進入了D:\ReactOS

2. 輸入configure.cmd生成目錄output-MinGW-i386

3. 輸入cd output-MinGW-i386\host-tools, 進入D:\ReactOS\output-MinGW-i386\host-tools, 輸入make 編譯生成tools
4. 輸入cd ..\reactos, 輸入make bootcd, 編譯生成bootcd.iso

六. 用VS2012編譯ntoskrnl模塊
1. 打開VS2012 X86命令行工具, 進入D:\ReactOS, 輸入configure.cmd VSSolution生成目錄output-VS11-i386
D:\ReactOS\dll\keyboard\kbdcz\kbdcz.c
D:\ReactOS\dll\keyboard\kbdhu\kbdhu.c
D:\ReactOS\modules\rosapps\applications\screensavers\butterflies\lang
D:\ReactOS\modules\rosapps\applications\sysutils\ctm\lang
D:\ReactOS\modules\rosapps\applications\screensavers\cylfrac\lang
D:\ReactOS\dll\win32\kernel32\winnls\nls
D:\ReactOS\modules\rosapps\applications\screensavers\matrix\lang
D:\ReactOS\modules\rosapps\applications\screensavers\mazescr\lang
D:\ReactOS\subsystems\ntvdm\lang
D:\ReactOS\modules\rosapps\applications\screensavers\starfield\lang
D:\ReactOS\base\setup\usetup\lang
七. 制作ReactOS安裝盤
八. 用VirtualBox安裝ReactOS
1. 下載並安裝VirtualBox, 我使用的是VirtualBox-4.3.12-93733
2. 新建虛擬機, 選擇載入第七步生成的bootcd.iso

3. 設置串口參數
九. 建立調試環境
1. 打開VS2012(Win7, Win8 要以管理員身份運行), 選擇菜單DRIVER -> Test -> Configure Computers, 打開Computer Configuration窗口


2. 點擊Add New Computer, 在Computer name:中輸入你真實的計算機的名字(不是虛擬機中計算機的名字), 下邊三個選項選擇最后一項”Manually configure debuggers and do not provision”,手動配置調試

3. 按下圖配置調試參數
Connection Type選為Serial (串口)
(波特率)Baud Rate 115200
(管道)Pipe勾選
(重連接)Reconnect勾選
(管道名)Pipe name \\.\pipe\com_debug
這幾個選項是根據第八步的虛擬機設置來設置的
最后點擊下一步, 完成。

4. 在vs2012中選擇菜單 工具 -> 附加到進程, 打開附加到進程窗口
傳輸:Windows Kernel Mode Debugger
限定符:就是我們上面添加的計算機名
選擇Kernel進程, 點擊附加進入調試狀態


5. 在VirtualBox虛擬機中按Tab+K產生中斷, VS2012捕獲該中斷

十. 調試ReactOS源碼
1. 在VS2012中打開源碼文件 D:\ReactOS\ntoskrnl\ps\process.c, 在函數PspCreateProcess處按F9下斷點
1. 首先下載 源碼和RosBE 從網站 https://www.reactos.org
2. 安裝好RosBE 並選擇好源碼目錄
3. 進入VS2010的命令行環境, 然后切換到Ros源碼目錄
4. 如果沒有包含RosBE的CMake路徑
SET PATH=%PATH%;D:\RosBE\Bin\ (這里假設你將Rosbe安裝在D盤的RosBE文件夾)
然后執行 configure.cmd VSSolution
即可生成VS2010的工程 在Ros源碼目錄的 output-VS10-i386\reactos 目錄下
現在我們可以瀏覽Ros源碼了
一:ReactOS簡介
ReactOS是一個基於 Windows NT 架構(Windows XP, Windows 7, Windows Server 2012 等均基於 Windows NT 架構)設計原則的開源操作系統。由於所有的代碼都經過重新編寫,ReactOS 並不是一個基於 Linux 的操作系統,而且不包含任何 UNIX 架構。
ReactOS項目的主要目標是提供一個與 Windows 環境二進制兼容的操作系統。它能讓您的 Windows 應用程序和驅動程序如同在 Windows 上一樣運行。此外,由於應用了 Windows 操作系統的外觀特性,已經熟悉 Windows? 用戶界面的用戶在使用 ReactOS 時將駕輕就熟。ReactOS 的終極目標是使您能夠在感覺不到最終用戶體驗變化的前提下,使用 ReactOS? 來替代 Windows 。
自由軟件倡導者認同自由軟件操作系統現狀的改善促進了競爭,ReactOS也同樣獲益匪淺ReactOS是最完整的類 Windows®操作系統的工作平台, 因此,參與開發的程序員需要花費許多精力去學習ReactOS源碼 和研究ReactOS開發文檔。
ReactOS組件也越來越多,兼容性也越來越好,但 ReactOS 不會有任何束縛。 ReactOS已經並將繼續吸收最新版本的Win32 API,跟蹤甚至發展最新的操作系統技術 。盡我們所能,使用最新的技術,並不斷的融合新的特點到最新版本。簡單地說,ReactOS目標就是用您的硬件設備去運行您的應用程序,最后,誕生一個任何人都可以免費使用的 FOSS 操作系統。
二:ReactOS功能概述
到了 2005年,ReactOS 內核已經十分穩定,大多數給上層程序開發使用的API均制作完成,並且擁有了一個基本的GUI窗口界面。ReactOS 已經具有一個與 Windows瀏覽器類似的 ReactOS Explorer 作為系統操作界面。
- ReactOS 0.2 版可以運行相當多數的 Win32 應用程序,並擁有自己的 Notepad(記事本,基本的文本編輯器)、Regedit(系統注冊表編輯器),Cmd(命令行提示符)和幾個其他的大型應用(比如 AbiWord 文字編輯器)以及一些游戲(Quake 和 Quake II,Wine 的掃雷克隆)。
- 0.2.5 版主要工作在於聲卡、網卡的驅動支持。Lynx文本網頁瀏覽器抓取網頁的螢幕擷取圖展示了,不過這個功能尚待進一步改進。這個版本更加入了Ext2文件系統和 GRUB boot loader 的支援,讓 ReactOS 與 Linux分區 共存。
- 自0.2.6版起,Dillo、mIRC 和網頁瀏覽器Mozilla Firefox的DCOM元件可於ReactOS內運行。部份游戲如 Unreal Tournament 和 Deus Ex 則已知能以軟件渲染的方式運作。使用 nVidia-Driver 或者 Mesa 3D 的軟模式,OpenGL 的運行只剩下一些小問題。第一個網絡服務器Tiny Web Server和 The UltraVNC Client宣布運行成功。從右圖可見,OpenOffice(1.x版)也有部份可以執行了。
- 自版本0.2.8,TCP/IP的部份元素開始運作,還有更多的應用程序例如 Notepad、AbiWord、OpenOffice、Deus Ex 和 Unreal Tournament。聲音及USB支援尚在制作中(SB16半工作、USB OHCI 和 UHCI 則仍須勞力) USB功能“借”自 Cromwell。Plug and Play的開發工作、與及WDM的支持亦已展開。除了字符網頁瀏覽器Lynx,ReactOS 更可以以 Mozilla 的 DCOM元件以圖像方式瀏覽網頁。
- ReactOS 0.2.8 能偵測自己是否在 VMWare 中運行,繼而到 VMWare Tools ISO 安裝SVGA驅動以提供更佳的GUI表現。CSRSS 經已完全重寫, 一個“重頭寫起”的 Ws2_32 也預計即將完工。在Trunk里面有些運作上還可以的ddraw,dplay和dplayx元素。
三:ReactOS開源官網
ReactOS開源網站的網址:https://www.reactos.org/ ,官網截圖如下所示:

三:ReactOS開源代碼的架構
用一張ReactOS源代碼的架構圖片,來說明更有價值些,如下所示:

我這里下載的是ReactOS-0.3.15,最新版本的是React-0.3.16,我們下載最新版本的,我只是想研究和了解下WINDOWS NT的內核架構,所以代碼的版本並不是很重要!
源碼的下載網址為:http://sourceforge.net/projects/reactos/files/
有空慢慢分析ReactOS的設計思想,當然也會借鑒WINCE的OS的思想,兩者結合起來分析吧……
1: 首先從https://www.reactos.org/wiki/ReactOS_Build_Environment下載Reactos BE 工具,安裝時會讓指定ReactOS的源代碼文件夾路徑,安裝完成后桌面會自動生成一個注冊表文件,將這個注冊表文件導入
2: 打開VS2012命令行工具,切換到ReactOS源碼文件夾,鍵入命令 configure.cmd VSSolution ,之后會在源碼目錄生成VS的工程.over
ReactOS 是一個基於 Windows NT 架構設計原則的開源操作系統。ReactOS 項目的主要目標是提供一個與 Windows 環境二進制兼容的操作系統。它能讓您的 Windows 應用程序和驅動程序如同在 Windows 上一樣運行。此外,由於應用了 Windows 操作系統的外觀特性,已經熟悉 Windows 用戶界面的用戶在使用 ReactOS 時將駕輕就熟。ReactOS 的終極目標是使您能夠在感覺不到最終用戶體驗變化的前提下,使用 ReactOS 來替代 Windows。
工具/原料
-
VMware workstation 虛擬機
-
React OS系統鏡像
配置虛擬機
React OS系統基礎安裝
React OS 驅動安裝及系統基礎設置
注意事項
-
React OS仍在 alpha 試驗階段,建議不要在React OS環境下進行比較重要的工作。
-
React OS能兼容的硬件和軟件比較有限,但穩定性比較好,並且開源免費。
-
安裝中或安裝完后遇到問題的可以多逛一下React OS官網或論壇。
