目录
- 一 下载并安装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:ProgramFilesRosBE, 把D:ProgramFilesRosBEBin添加到环境变量path中
五. 用RosBE命令行编译ReactOS源码
1. 双击ReactOS Build Environment进入编译环境, 因为安装RosBE时选择了ReactOS源码位置, 所以自动进入了D:ReactOS
2. 输入configure.cmd生成目录output-MinGW-i386
3. 输入cd output-MinGW-i386host-tools, 进入D:ReactOSoutput-MinGW-i386host-tools, 输入make 编译生成tools
4. 输入cd .. eactos, 输入make bootcd, 编译生成bootcd.iso
六. 用VS2012编译ntoskrnl模块
1. 打开VS2012 X86命令行工具, 进入D:ReactOS, 输入configure.cmd VSSolution生成目录output-VS11-i386
D:ReactOSdllkeyboardkbdczkbdcz.c
D:ReactOSdllkeyboardkbdhukbdhu.c
D:ReactOSmodules osappsapplicationsscreensaversutterflieslang
D:ReactOSmodules osappsapplicationssysutilsctmlang
D:ReactOSmodules osappsapplicationsscreensaverscylfraclang
D:ReactOSdllwin32kernel32winnls ls
D:ReactOSmodules osappsapplicationsscreensaversmatrixlang
D:ReactOSmodules osappsapplicationsscreensaversmazescrlang
D:ReactOSsubsystems tvdmlang
D:ReactOSmodules osappsapplicationsscreensaversstarfieldlang
D:ReactOSasesetupusetuplang
七. 制作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 \.pipecom_debug
这几个选项是根据第八步的虚拟机设置来设置的
最后点击下一步, 完成。
4. 在vs2012中选择菜单 工具 -> 附加到进程, 打开附加到进程窗口
传输:Windows Kernel Mode Debugger
限定符:就是我们上面添加的计算机名
选择Kernel进程, 点击附加进入调试状态
5. 在VirtualBox虚拟机中按Tab+K产生中断, VS2012捕获该中断
十. 调试ReactOS源码
1. 在VS2012中打开源码文件 D:ReactOS toskrnlpsprocess.c, 在函数PspCreateProcess处按F9下断点
1. 首先下载 源码和RosBE 从网站 https://www.reactos.org
2. 安装好RosBE 并选择好源码目录
3. 进入VS2010的命令行环境, 然后切换到Ros源码目录
4. 如果没有包含RosBE的CMake路径
SET PATH=%PATH%;D:RosBEBin (这里假设你将Rosbe安装在D盘的RosBE文件夹)
然后执行 configure.cmd VSSolution
即可生成VS2010的工程 在Ros源码目录的 output-VS10-i386 eactos 目录下
现在我们可以浏览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官网或论坛。