使用VS2012調試ReactOS源碼


目錄

  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, 網上隨便下載

 

二. 下載並安裝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

 
 
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官網或論壇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM