C/C++

ReactOS 操作系统源码编译

凡凡 · 9月14日 · 2019年 · 230次已读

0x00 起因

为什么突然想去编译一下 ReactOS 操作系统呢?原因为以下几点:

  • ReactOS 操作系统更接近于 Windows 操作系统;
  • 更好的学习 Windows 操作系统底层(Windows 源代码并未公开);
  • 毛德操所著的《Windows 内核情景分析》一书采用 ReactOS 源代码剖析;
  • 希望能跟着毛德操老师学习 Windows 内核;
  • 自己从未编译过任何操作系统源码(Android 系统除外);

基于以上几点,所以打算尝试手动去编译 ReactOS 操作系统源代码。

0x01 ReactOS 操作系统简单介绍

ReactOS 的 LOGO

ReactOS 是一个开发与 Windows NTWindows 2000 应用程序 和硬件驱动程序兼容的开源操作系统的项目。ReactOS 主要是由 C 语言编写。部分组件则由 C++ 编写,例如 ReactOS 文件浏览器。ReactOS 的许可协议主要为 GNU 通用公共许可证,也有少量代码以 GNU 宽通用公共许可证BSD 许可证之类的开源许可证发行。为确保操作系统没有任何一部分是看过泄漏出来的微软 Windows 源码的人所写,或者反向工程的过程达不到净室设计标准,一个全盘的源码审查由 ReactOS 主要开发者下令展开。此审查当前已经结束。该项目从发起至今已有 20 余年,但由于种种原因,当前仍然处于 alpha 状态。

提示:以上来自维基百科对 ReactOS 的描述,欲知更多详情,请参阅维基百科说明。

0x02 需要准备的工具

以下列举需要准备的工具:

  • ReactOS 源代码;
  • ReactOS Build Environment(RosBE);

对于 ReactOS 的源代码,可以在 GitHub 上获取,地址: https://github.com/reactos/reactosReactOS 的编译环境可以在其官网获取,地址: https://reactos.org/wiki/Build_Environment

有了以上两个,我们就可以对其进行编译了。

0x03 如何编译 ReactOS 源代码

ReactOS 源代码下下来大概有 1 个 G 左右,当你安装好 RosBE 后,需在安装目录下启动 cmd 脚本 RosBE.cmd,启动后,在命令行下输入 configure.cmd,如下所示:

configure.cmd 运行后的结果

还需要说明一点就是,在安装 RosBE 时,需要指明 ReactOS 源代码的目录。当 configure.cmd 脚本执行后,会生成一个 output-MinGW-i386 的目录, 同时生成相关编译的脚本文件。

接下来便需要进入到 output-MinGW-i386 目录下,对该目录下的文件用 ninja 对其进行编译,如下所示:

ninja 编译过程

这一过程一开始我以为要好久,但最后发现不需要等待太长时间,等该编译完成后,最后需要做的是输出为 iso 镜像文件,输出命令如下所示:

ninja livecd 中的 livecd 为生成 iso 镜像文件名

等命令执行完后,结果如下所示:

生成后的 iso 镜像文件

0x04 在 VMWare 上安装生成后的 iso 镜像文件

本人使用的 VMWare 的版本是 15.1,之前用的是 15.0,这里有个坑,我顺便提一下,就是如果你的系统是 windows10 的 1903 版本,在用 VMWare 虚拟机进行拖拽文件时会卡住造成虚拟机正在繁忙提示,这是由于版本的不兼容导致,只需要将 VMWare 虚拟机更新到最新版本即可解决该 BUG。

iso 镜像文件有了,接下来便是安装了,新建虚拟机,这里也简单提一下,在选择操作系统时需选择 Windows,版本选择 Windows NT,iso 选择上面生成的镜像文件,像安装其他系统一样进行安装,启动后,点击第一项即可进入,如下所示:

选择第一项进入

最终效果图如下:

ReactOS 安装效果图

0x05 写在最后

怎么样,是不是感到很有满足感,这可是你亲自编译出来的哦,哈哈 ^_^

2 条回应
  1. 晓东_sodo2019-10-7 · 16:10

    [img]http://p2.so.qhmsg.com/t01a6bcc50e74f151c7.jpg[/img]

    • 晓东_sodo2019-10-7 · 16:10

      不好意思打错了