使用VS2012調試ReactOS源碼

目錄react

  1. 一 下載並安裝VS2012
  2. 二 下載並安裝WDK80
  3. 三 下載ReactOS0315源碼
  4. 四 下載並安裝RosBE211
  5. 五 用RosBE命令行編譯ReactOS源碼
  6. 六 用VS2012編譯ntoskrnl模塊
  7. 七 製做ReactOS安裝盤
  8. 八 用VirtualBox安裝ReactOS
  9. 九 創建調試環境
  10. 十 調試ReactOS源碼
 

一. 下載並安裝VS2012

我安裝的是VS2012_ULT_chs.iso, 網上隨便下載linux

 

二. 下載並安裝WDK8.0

下載地址: http://msdn.microsoft.com/zh-cn/windows/hardware/hh852365程序員

安裝完以後打開VS2012, 會發現新建項目中多了一些Driver項目, 菜單欄上也多了一個菜單項DRIVERwindows

 

三. 下載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中app

 

五. 用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

 
 
2. 下面這些文件夾或者文件須要修正一下, 不然在編譯過程當中會由於編碼問題出現錯誤
 
. kbdcz
D:\ReactOS\dll\keyboard\kbdcz\kbdcz.c
 
. kbdhu
D:\ReactOS\dll\keyboard\kbdhu\kbdhu.c
 
. butterflies
D:\ReactOS\modules\rosapps\applications\screensavers\butterflies\lang
 
. ctm
D:\ReactOS\modules\rosapps\applications\sysutils\ctm\lang
 
. cylfrac
D:\ReactOS\modules\rosapps\applications\screensavers\cylfrac\lang
 
. kernel32
D:\ReactOS\dll\win32\kernel32\winnls\nls
 
. matrix
D:\ReactOS\modules\rosapps\applications\screensavers\matrix\lang
 
. mazescr
D:\ReactOS\modules\rosapps\applications\screensavers\mazescr\lang
 
. ntvdm
D:\ReactOS\subsystems\ntvdm\lang
 
. starfield
D:\ReactOS\modules\rosapps\applications\screensavers\starfield\lang
 
. usetup
D:\ReactOS\base\setup\usetup\lang
 
3. 進入D:\ReactOS\output-VS11-i386\host-tools, 打開工程文件REACTOS.sln, 編譯生成ALL_BUILD
 
4. 進入D:\ReactOS\output-VS11-i386\reactos, 打開工程文件REACTOS.sln, 編譯生成ALL_BUILD(漫長的等待...........................................................................................)
 
 
由於咱們只用到工程ntoskrnl生成的ntoskrnl.exe, 因此也能夠只編譯生成工程ntoskrnl, 以節約時間 !
 
 
5. 如今D:\ReactOS\output-VS11-i386\reactos\ntoskrnl\Debug目錄下應該已經生成了ntoskrnl.exe和ntoskrnl.pdb
 

七. 製做ReactOS安裝盤

在第六步中, 其實咱們用VS20120編譯工程bootcd也能夠生成bootcd.iso, 可是不知爲什麼在虛擬機中不能引導安裝, 所以咱們須要第五步生成的bootcd.iso
 
1. 用光盤映像編輯工具(UltraISO)打開第五步生成的bootcd.iso
 
 
2. 用第六步生成的ntoskrnl.exe和window 2003系統中的kdcom.dll替換bootcd.iso中的同名文件, 保存生成新的bootcd.iso
 

八. 用VirtualBox安裝ReactOS

1. 下載並安裝VirtualBox, 我使用的是VirtualBox-4.3.12-93733

2. 新建虛擬機, 選擇載入第七步生成的bootcd.iso

 

3. 設置串口參數

 
4. 啓動虛擬機, 安裝ReactOS, 建議選擇English版本進行安裝. 安裝過程當中會重啓一次, 按照步驟來就行了
5. 安裝完成後啓動進入選擇界面, 選擇ReactOS (Debug)啓動
 
 

九. 創建調試環境

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下斷點

 
2. 按F5恢復虛擬機運行, 而後在虛擬機中隨便運行一個程序建立新的進程, 則虛擬機會中斷到剛纔設置的斷點位置, 開始調試吧 !!!
用RosBE2.1 生成Reactos和VC工程

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系統鏡像

配置虛擬機

  1. 1打開VMware workstation,點擊建立新的虛擬機
    在VMware中安裝React OS系統
  2. 2安裝來源選擇你事先下載好的react os 鏡像
    在VMware中安裝React OS系統
  3. 3選擇客戶機操做系統。因爲VMware虛擬機不提供react os操做系統簡易安裝,又由於ReactOS 是一個基於 Windows NT 架構設計原則的開源操做系統,所以選擇windows NT做爲客戶機操做系統。
    在VMware中安裝React OS系統
  4. 4更改虛擬機名稱,安裝位置等。。。磁盤大小根據我的須要合理選擇。
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
  5. 5查看虛擬機配置,完成設置,開啓虛擬機。
    在VMware中安裝React OS系統

React OS系統基礎安裝

  1. 1開啓虛擬機後,出現安裝畫面。語言最好仍是選擇英語,若是你選擇簡體中文【Chinese(PRC)】,最壞的狀況就是在之後的安裝界面中,中文沒法顯示,界面裏全是方框(有密集恐懼症的千萬別試TAT)。
    在VMware中安裝React OS系統
  2. 2你看得懂英文也好,看不懂也罷,反正後面的使勁按Enter鍵就好了(若是你不打算分區的話)。大體意思是歡迎安裝React OS,它還處於早期發展階段,不能完美支持全部的基礎應用,以及安裝配置。
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
  3. 3(若是你打算分區,出現下面界面時,按上下鍵選擇系統安裝分區;按Enter在高亮顯示的分區中安裝系統;按c建立分區;按d刪除已有分區)
    在VMware中安裝React OS系統
  4. 4格式化分區。提供fat和ext2兩種文件系統格式,其中fat多用於windows系統,而ext2多用於linux系統。(這兩種文件系統格式都算得上是老古董了。。。)
    在VMware中安裝React OS系統
  5. 5選擇安裝根目錄
    在VMware中安裝React OS系統
  6. 6按Enter開始安裝
    在VMware中安裝React OS系統
  7. 7在硬盤上安裝引導程序(MBR和UBR)即第一項。沒事你選最後一項幹啥。。。
    在VMware中安裝React OS系統
  8. 8React OS基礎部分就安裝完了,按Enter重啓。
    在VMware中安裝React OS系統

React OS 驅動安裝及系統基礎設置

  1. 1每次開啓都有這個引導界面,默認第一項就行。
    在VMware中安裝React OS系統
  2. 2歡迎界面及GPL許可證查看界面
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
  3. 3更改系統設置和鍵盤佈局設置,填寫用戶名稱及密碼,設置時區和時間
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
  4. 4安裝VMware tools時,必定要注意先在虛擬機目錄中點安裝VMware Tools,再點next。(按Ctrl+Alt鍵釋放鼠標)【不懂緣由看英文】
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統
  5. 5完成安裝。重啓開始探索React OS吧
    在VMware中安裝React OS系統
    在VMware中安裝React OS系統

注意事項

  • React OS仍在 alpha 試驗階段,建議不要在React OS環境下進行比較重要的工做。
  • React OS能兼容的硬件和軟件比較有限,但穩定性比較好,而且開源免費。
  • 安裝中或安裝完後遇到問題的能夠多逛一下React OS官網或論壇。
相關文章
相關標籤/搜索