UnoDOS:单一源码树下的全平台图形系统

UnoDOS 是一个图形化操作系统家族,凭借单一源码树和统一设计规范,支持包括搭载 8088 处理器的 IBM PC/XT 至现代笔记本电脑在内的二十二种机型。该项目最初为一款 GUI 优先的 16 位实模式操作系统,完全由 x86 汇编编写,内核、窗口管理器、文件系统及应用集可容纳于 1.44 MB 软盘中。如今,它已演进为基于契约驱动的多平台移植系列,覆盖家用电脑、游戏主机、掌机、单板计算机及移动设备。

其旗舰产品 pc64 可在任何现代 64 位 PC 上裸机运行,内置独立驱动程序、网络协议栈、浏览器、办公套件、编译器及管理程序(Hypervisor)。

pc64:现代 PC 上的原生体验

pc64 支持在 2007 年后生产的绝大多数 x86-64 PC 上直接启动。在 UEFI 环境中,UnoDOS 调用 ExitBootServices 接管硬件控制权,随后完全依赖自身驱动运行;混合磁盘镜像亦兼容旧式 BIOS 机器。

完整的桌面环境与生态

Shell 基于跨平台工具包 unoui 构建,提供任务栏、虚拟桌面、窗口吸附及动画切换等功能。支持十种主题实时切换,涵盖从现代扁平风格到 Mac OS 7、Windows 3.1、Amiga Workbench 等复古界面。文本渲染采用抗锯齿 TrueType 字体,所有控件均支持指针与键盘操作。

应用生态方面,UnoDOS 提供了丰富的原生组件:

  • 办公套件:UnoWord、UnoCalc 和 UnoShow 达到 Office 97 级别,通过内置 unodoc 库直接读写 Microsoft 二进制格式(.doc, .xls, .ppt)。
  • 浏览器:支持 HTML/CSS 渲染、Cookie 管理及 TLS 1.2 HTTPS。内置两种可切换的 JavaScript 引擎(unojs 字节码虚拟机与 quickjs-ng)。
  • 开发工具:Studio IDE 集成语法高亮、AI 助手及内置 C 编译器 UnoC,可直接在系统内编译原生应用。MicroPython 作为一等公民运行时,提供访问 Shell、文件系统及网络的 API。
  • 多媒体与工具:从零编写的音视频解码器支持 WAV、MP3、AAC-LC 等格式;UnoAmp 复刻 Winamp 2 体验。此外还包含 SSH 客户端、文件管理器、绘图工具及多款经典游戏。

所有应用均为可加载的 .UNO 模块,放入指定目录即可自动发现,无需重启或重新编译。

底层硬件支持与虚拟化

UnoDOS 的固件层以下代码均为原生编写,涵盖 AHCI/NVMe 存储、xHCI USB 主机栈(支持以太网适配器)、有线及 Wi-Fi 网络驱动(支持 WPA2)、Intel HDA 音频及 ACPI 解释器。网络协议栈从零构建,支持完整的 TCP/IP 及 TLS。

在虚拟化方面,管理程序 unovirt 利用 Intel VT-x 技术,可在 UnoDOS 下启动真正的 Ubuntu 内核,挂载 ext4 磁盘并响应用户命令。AMD/SVM 后端已完成开发,待硬件验证。

部署与验证

系统支持非破坏性安装至 ESP 分区或整盘克隆,并可通过网络进行远程重装。URC(远程控制通道)允许在无头模式下对真实机器进行部署测试与屏幕串流。目前,pc64 已在 Lenovo ThinkPad X1 Carbon Gen 8、ZimaBlade 及 QEMU 环境中通过验证,相关设计笔记详细记录了真实硬件特有的固件陷阱。

契约驱动架构:一份定义,多种世界

UnoDOS 3.1 引入基于契约的开发模式。单一机器可读契约(unodef/)定义了屏幕几何、窗口布局及事件枚举,各平台移植版本据此生成或核对。这种架构使得新目标平台的适配成本极低,目前已有十一个移植版本基于此架构全新构建。

广泛的平台覆盖

每个移植版本均运行带有共享应用集的 UnoDOS 桌面,并根据硬件能力进行缩放,最低可在 2 KB RAM 设备上运行启动器。部分关键平台已在真实硅片上验证:

  • 家用电脑:包括 IBM PC/XT(8088+)、Amiga(68000)、Commodore 64、Apple II 系列及 Macintosh(68000/PPC)。其中 MacPlus 移植版实现了裸机运行,拥有自有引导块与驱动。
  • 游戏主机与掌机:涵盖 Sega Genesis、Super Nintendo、NES、Game Boy 系列、PlayStation 2 及 Dreamcast 等。例如,PS2 版本跨越 Graphics Synthesizer 运行可移植 C 核心,Dreamcast 版本在模拟器中可达 60 fps。
  • 开发板与移动设备:包括 Raspberry Pi(AArch64)和 PinePhone,后者支持竖屏显示及 microSD 自启动。

未在真实硬件验证的平台,则通过模拟器或无 ROM 指令级测试套件确保构建正确性,无需专有 ROM 即可开发测试。

经典回溯与开源协议

原始的 UnoDOS 3 作为 x86 参考实现,完全由实模式汇编编写,无 DOS 依赖。其 46 KB 内核通过 106 个系统调用提供图形、GUI 工具包及协作式多任务处理,曾在真实的 4.77 MHz 8088 处理器上全功能运行。

项目代码托管于 GitHub,master 分支为当前开发主线,hmofet/unodos-3-legacy 归档了经硬件验证的旧版系统。文档体系完善,涵盖用户手册、架构详解及 API 参考。

UnoDOS 遵循 Mozilla Public License 2.0 (MPL 2.0) 协议,版权所有 (c) 2026 Arin Bakht。该协议允许免费商用及修改,但要求修改后的源代码必须公开,且可与专有代码结合发布。