一. 下载并安装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下断点