ReactOS 操作系统

2025年4月30日 | 阅读 7 分钟

ReactOS 操作系统专为 i586/amd64 个人电脑设计。它是一个免费且开源的操作系统,提供了二进制兼容功能。它与为 Windows Server 2003 及更高版本创建的软件和设备驱动程序兼容。ReactOS 关注未公开的 Windows API 知识,并提供 Windows 的开源替代品。

ReactOS 操作系统自 1996 年以来一直在开发中。截至 2024 年 4 月,开发者仍将其视为功能完整的 alpha 软件,并仅建议用于测试和评估。尽管如此,许多 Windows 程序都能正常运行,包括 LibreOffice 5.4、GIMP 2.6 和 Adobe Reader 9.3。

ReactOS 的大部分是用 C 语言开发的,而 ReactOS 的一些组件,如 ReactOS 文件资源管理器,是用 C++ 构建的。该项目已移植到 AMD64 CPU 架构,并部分实现了 Windows API 功能。作为免费和开源软件 (FOSS) 生态系统的一部分,ReactOS 与许多其他 FOSS 项目共享和协作,其中最主要的是 Wine,它为类似 Unix 的操作系统提供 Windows 兼容层。

开发

以下是正在开发的 ReactOS 操作系统的功能。

1. ReactOS 核心开发

ReactOS 的大部分是用 C 语言编写的。然而,一些组件,如声音堆栈和 ReactOS Explorer,是用 C++ 编写的。该项目使用 Microsoft Visual Studio 和 MinGW 进行编译。它提供了现有组件的更新,以帮助开发所使用的构建系统。

开发人员以更新版本的 Windows 为目标,同时随着工作的进展添加对更多应用程序和硬件的支持。他们希望改进用户模式 应用程序编程接口 (API) 和内核与 Windows NT 5.2 版本(Windows Server 2003)的兼容性。ReactX 提供 DirectX 的内部实现和支持。渲染针对 OpenGL 3D 和 2D 进行本地硬件加速。诸如 Direct3D 之类的附加绘图功能通过临时解决方案被路由到 OpenGL,主要利用 Wine 的代码,例如 WineD3D。

开发团队的规模和经验水平对开发过程有影响。微软雇佣了 1000 多名开发人员,并将他们分成 25 个团队,每个团队 40 名开发人员,以估算部署 Windows 7 所需的工作量。

根据在 Ohloh 的 ReactOS 条目中通过“非常大、活跃的开发团队”链接访问的页面,截至 2011 年 9 月 2 日,有 33 名开发人员贡献了超过 12 个月,104 名用户(当前和过去的)自项目成立以来一直使用 Apache Subversion 为该项目贡献代码。ReactOS 开发人员 Michele C. 在 2009 年米兰 Hackmeeting 的演讲中观察到,大多数开发人员在处理 ReactOS 时学习 Windows 架构,并且之前对此没有任何了解。

ReactOS 主要专注于 x86/AMD64 PC 平台;然而,曾经尝试过将其移植到 ARM 架构。该项目已被放弃,因为它没有带来多少功能,并且与不再积极开发的 PowerPC 移植合并。一个特定于架构的 HAL 被用来支持 Xbox、NEC PC-9800 和 IA-32 架构的变体。ReactOS 64 位支持“正在进行中”,尽管进展似乎缓慢。

2. 网络

ReactOS 的网络堆栈基于 OSKit 移植的 FreeBSD 网络堆栈的 TCP 部分,以及内部版本的面向包的协议,如 IP。之后,ReactOS 网络堆栈包含了 lwIP。ReactOS 的主要平台是 x86/AMD64 PC。曾经,“正在进行”将工作移植到 ARM 架构,尽管没有产生多少实用性。它已不再被积极维护并被放弃,同时还有 PowerPC 的移植。一个特定于架构的 HAL 被用于 IA-32 架构的变体。

3. 合作与重用

尽管 ReactOS 的目标是开发一个与 Windows 兼容的开源内核,但构建操作系统所需的大部分其他功能都已存在于更大的开源生态系统中。因此,ReactOS 在可用且可行时,会建立在现有开源项目的基础上并与其合作。然而,像 Wine(曾被称为 Captive NTFS)和 Longines 这样的项目也重用了开源的 ReactOS 代码库。OpenGL 渲染由 Mesa 3D 提供。

4. 硬件驱动程序堆栈

例如,UniATA 项目在硬件驱动程序方面为 ReactOS 提供串行 ATA 驱动程序。此外,该项目还尝试使用 FullFAT 库重写其 FAT 可安装文件系统。ReactOS 使用 Haiku USB 堆栈作为其 USB 功能的基础和参考点。

5. Wine 合作

在此简化的 ReactOS 架构图中,Wine 的徽标指示了 Wine 的依赖关系。白色框表示第三方二进制软件。红色框表示内核组件,绿色框表示“用户空间”组件。

ReactOS 和 Wine 项目之间可以共享许多依赖关系和开发,因为它们都旨在原生运行二进制 Windows 软件。ReactOS 利用 Wine 项目的部分功能来利用 Wine 在 Win32 API 实现方面的进步。

ReactOS 独立开发内核,因为 Wine 依赖于现有的 Unix 内核。

实验性的 Arwinss 分支旨在通过使用不同的 Win32 API 实现来增强对 USER32 和 GDI32 的支持。ReactOS 的初始 Win32 子系统主要基于 Windows 的对应部分。Arwinss 将该子系统的架构与可比的 Wine 实现相结合。Arwinss 使用了 GDI32 和 USER32 库,更新很少。此外,Arwinss 还为用户提供了使用远程 X 服务器代替本地显示器的选项。

6. 其他

Tango Desktop Project 通过其努力,向公众提供了桌面应用程序的设计师指南和资源。FreeType 是一个开源的基于 Web 的开发库,支持许多字体相关操作,并用于将文本渲染到位图。

通过 KernelEx 项目,以开源方式实现了部分 Windows API,该项目是一个 Windows API 兼容层和扩展项目。MinGW、adns、ICU、SYSLINUX、GraphApp、Ext2、GNU FreeFont、DejaVu 字体和 Liberation 字体是进一步贡献的项目。

ReactOS 功能

ReactOS 操作系统支持以下功能。

1. 兼容

开源 ReactOS 的目标是创建一个实现 NT 架构的操作系统。它包含一些有用的应用程序/工具、NT 驱动程序兼容性和 WIN32 子系统。

ReactOS 将 Win32 兼容性与 NT 内核的强大功能相结合。它以其健壮性、性能、可扩展性、可移植性和可靠性而闻名。

2. 安全

该操作系统被广泛用于整合高度灵活的安全。此安全结构基于访问控制列表。

默认安全设置为 Redmond 的操作系统(如 XP)和声誉不佳的设置。这些设置旨在方便用户和旧版应用程序从 Win9x 切换。ReactOS 附带了适当的默认安全设置。

ReactOS 不存在其他操作系统的一些安全漏洞。它在设计时就考虑到了极高的安全性。

许多恶意应用程序是针对广泛使用的网络应用程序(如电子邮件客户端、浏览器和 Office 产品)的脚本。这些网络应用程序通过内置的脚本功能协同工作。

自然,用户群更大、使用系统更多的系统比 Macintosh 和 Linux 等小型系统更容易受到黑客攻击。

3. 轻量级

ReactOS 的设计兼具健壮性和轻量级。术语“轻量级”与经典的 Win95 相关。它有一个标准化的用户界面和一套广泛使用且实用的实用程序。ReactOS 比 Windows 95 功能更丰富,提供了更新的界面,并且是从头开始构建在强大的 NT 基础上的。

ReactOS 是开源软件,可以免费使用。该系统可免费访问所有源代码。一些模块具有不同的许可证,例如 BSD,但大多数都涵盖在 GNU(通用公共许可证)下。

4. 可靠

作为 NT 的坚实重构,ReactOS 自 1996 年以来一直从头开始构建。因此,它是一个可靠且强大的操作系统,适用于广泛的应用,包括嵌入式微型计算机、个人计算机、工作站、服务器集群、大型机和超级计算机。ReactOS 从另一个操作系统系列借鉴了多种架构选择,包括 UNIX、VMS、OS/2,当然还有 NT。

5. 可移植性

ReactOS 操作系统的设计适用于各种 CPU 系列。它包括 Intel x86,并使用 CISC 和 RISC 的替代处理器架构。只有一个 OS 内核,即内核,将 ReactOS 移植到各种架构需要更改最低层。硬件抽象层是与平台硬件的直接通信。

6. 可扩展性

ReactOS 被设计成适应性和可扩展性。ReactOS 可能是最具灵活性的操作系统平台之一。“子系统”的概念允许 ReactOS 进行扩展以处理来自不同平台的旧程序。一种确保与不同 UNIX 应用程序兼容性的方法是使用 POSIX 子系统。

7. 面向对象

UNIX 操作系统使用文件隐喻进行操作。它允许普通用户和程序员将打印机、存储设备、键盘和显示器视为普通文件。这使得许多常规任务更容易完成,并且对于系统的灵活性至关重要。文件隐喻是类 Unix 操作系统中的一种限制,有很多缺点。

ReactOS 正在扩展并受益于此隐喻。它正在操作一种对象隐喻来使用系统的架构。ReactOS 将 UNIX 文件隐喻之外的任何内容都视为对象。它包括线程、进程、共享内存段、全局注册表数据库和访问权限。

ReactOS 支持的应用程序

ReactOS 操作系统支持以下应用程序。我们可以使用不同形式的用户界面应用程序、游戏应用程序和其他应用程序。

  1. ReactOS Explorer (文件资源管理器)
  2. ReactOS 应用程序管理器
  3. 配件
    • 计算器应用程序
    • 命令提示符应用程序
    • 记事本应用程序
    • 画图应用程序
    • 写字板应用程序
    • 放大镜应用程序
    • 屏幕键盘应用程序
    • 远程桌面连接
    • 多媒体播放器 (Media Player)
    • 录音机应用程序
    • 音量控制应用程序
    • 字符映射应用程序
    • 剪贴板查看器应用程序
    • FontSub 应用程序
    • 键盘布局切换器应用程序
    • ReactX 诊断 (DxDiag) 应用程序
    • 注册表编辑器应用程序
    • SnapShot 应用程序
    • 任务管理器应用程序
  4. 管理工具
    • 设备管理器工具
    • 事件查看器工具
    • 服务管理器工具
    • 系统配置工具
  5. 游戏
    • 纸牌游戏
    • 蜘蛛纸牌游戏
    • WineMine 游戏

结论

ReactOS 是一个免费简单的 Linux 和 Unix 操作系统。我们可以使用该操作系统执行多种功能和运行程序。