Moxnox 是一款旨在弥合两种主要计算哲学之间差距的爱好者操作系统:Windows NT 的架构设计与 POSIX 的软件兼容性。与试图尽可能精确复制 Windows 的 ReactOS 不同,Moxnox 采用了 NT 内核的底层接口和系统调用,同时能够运行为类 Unix 系统编写的软件。为了实现这一目标,该项目实现了广泛的 POSIX 函数——涵盖了 POSIX 2024 标准中 1,200 个函数中的约 642 个——并包含完整的 GNU 基础系统。这允许用户在镜像 Windows NT 行为的内核上运行重新编译的类 Unix 软件。

这张图片提供了 Moxnox 操作系统当前命令行界面的视觉呈现。
Moxnox 的技术实现涉及几个特定的设计选择,以维持这种混合身份。该系统使用带有 `.exe` 和 `.dll` 扩展名的 PE 格式二进制文件,并通过结构化异常处理(SEH)处理 C++ 异常。它还采用了 Windows 调用约定(rcx, rdx, r8, r9)以及特定的 C 语言特性,例如 `sizeof(long)` 等于 `sizeof(int32_t)`。然而,它在文件系统结构上与 Windows 有所不同;虽然 NT 使用复杂的隐藏虚拟文件系统,但 Moxnox 使用带有正斜杠和 `/` 根目录的类 POSIX 路径。为了支持 POSIX 端,开发者集成了多个受 Linux 启发的特性,包括 dentry 缓存、大页(large folios)以及 evdev 支持。
尽管 Moxnox 已具备一定的成熟度——其能够自我托管以及约 130,000 行 C++ 代码便证明了这一点——但目前仍存在一些局限性。它缺乏图形用户界面(GUI)、不支持不同的时区,且不具备多用户功能。从性能角度来看,该项目在用户空间堆分配器和 TCP 性能方面面临瓶颈,目前 TCP 默认使用 64KB 窗口且不协商最大分段大小(MSS)。此外,虽然 Btrfs 文件系统支持可用于基本用途,但尚未经过“实战检验”,开发者建议目前不要挂载除临时文件系统以外的任何内容。