QSOE 0.1 版本发布:统一双内核系统,开启 RISC - V 操作系统新征程! QSOE 系统资讯QSOE 是一款受 QNX 启发的操作系统具备可选择的内核。2026 年 6 月QSOE 0.1 版本已发布这是统一双内核系统的首个公开版本。QSOE 变体情况QSOE 有两种变体它们共享一个用户空间和一个构建系统。QSOE/N 运行在专门为该项目从头编写的微内核 Skimmer设计支持 SMP上QSOE/L 则以 seL4 作为内核。编译后这两种变体都会提供可直接在如 U - Boot 加载器中使用的内核和 initrd 文件。两种变体的用户空间完全相同每个内核特有的部分只有任务管理器 taskman 和 C 库 libc.so C 库在源代码层面约 85% 是共享的仅在与内核交互的薄层有所不同。该设计遵循 QNX Neutrino 的传统小内核其余功能都在用户空间采用同步消息传递 IPC服务使用资源管理器模型。QSOE 目标是在 SiFive HiFive Unmatched (FU740) 上运行 64 位 RISC - V (RV64, Sv39) 日常开发使用 QEMU。目前两种 QSOE 变体都能在真实硬件上启动。该系统根据 Apache - 2.0 许可证发布。QSOE 下载方式QSOE 可以从源代码构建也可以安装预构建的二进制文件。每个版本的现成镜像都发布在指定处当前版本0.1。文件如下[skimmer.bin]Skimmer 微内核即 QSOE/N 变体的内核。这是一个原始二进制镜像由引导加载器或 QEMU与下面的用户空间包一起加载。[modpkg.cpio]模块包即共享的 QSOE 用户空间任务管理器、init、C 库、shell、驱动程序和实用工具以 CPIO 存档形式存在。QSOE/N 将其作为 initrd 与 skimmer.bin 一起启动。[qsoe - l - qemu.elf]QSOE/L 变体基于 seL4 内核是适用于 QEMU virt 机器的单个自包含 ELF 文件。它将 elfloader、seL4 内核、任务管理器和用户空间捆绑在一起启动时无需其他文件。[qsoe - l - sifive.elf]同样的 QSOE/L 镜像为 SiFive HiFive Unmatched (FU740) 开发板构建。[mrbml - riscv64.efi]mr - bmlQSOE 自己的引导加载器适用于 RISC - V 的 EFI 应用程序。它可以加载任何一种变体并在真实硬件上驱动引导菜单。[nvme.img.gz]一个可直接运行的自引导 QEMU 磁盘镜像GPT。其 EFI 分区包含 mr - bml磁盘根目录包含两个内核因此 QEMU 可直接进入 mr - bml 菜单无需 - kernel 参数。这是查看 QSOE 运行的最快方式。[virtio.img.gz]仅在 QEMU 下运行 QSOE/L 时使用的配套根磁盘原生 seL4 早于 QEMU 的 NVMe 所需的中断控制器因此它从 virtio 磁盘挂载根目录。QSOE/N 或真实硬件不需要此文件。简而言之要在 QEMU 中运行下载 nvme.img.gz如果需要 QSOE/L还需下载 virtio.img.gz并参考在 QEMU 下运行部分。要安装到真实硬件上需要 mrbml - riscv64.efi 加上内核 —— QSOE/N 使用 skimmer.bin modpkg.cpioQSOE/L 使用 qsoe - l - *.elf 镜像之一 —— 并参考安装部分。在 QEMU 下运行 QSOE这是查看 QSOE 运行的最快方式无需硬件也无需处理 - kernel 参数。下载的 nvme.img 是一个自引导 UEFI 磁盘QEMU 的固件从该磁盘运行 mr - bmlmr - bml 的菜单可直接从磁盘启动任意一种变体。所需条件qemu - system - riscv64QSOE/N 需要版本 11.0.1 或更高其 NVMe 需要 AIA 中断控制器。edk2 RISC - V UEFI 固件在 Debian/Ubuntu 系统上可通过 qemu - efi - riscv64 包获取。来自 [os] 仓库的启动器 [run - nvme.sh]它会为每种变体配置合适的 QEMU 机器、固件和磁盘无需手动操作。运行步骤# 解压镜像如果需要 QSOE/L添加 virtio.img.gzgunzip nvme.img.gz virtio.img.gz# 将启动器指向镜像并从菜单中选择一个变体NVME_IMG./nvme.img VIRTIO_IMG./virtio.img ./run - nvme.sh可以传递 n 或 l 跳过菜单./run - nvme.sh n。脚本会自动选择匹配的 QEMU 机器 —— QSOE/N 使用带有 NVMe 根目录的 AIA 机器QSOE/L 使用带有 virtio 根磁盘的 PLIC 机器。mr - bml 菜单和系统控制台都会显示在终端上选择一个变体后系统会启动到 login: 提示符。使用用户名 root 和密码 QSOE 登录。QSOE 安装方法适用于真实硬件和真实磁盘。QSOE 0.1 可在 SiFive HiFive Unmatched (FU740) 上启动未来目标是 SpaceMiT K3。此安装过程假设开发板已运行 Linux需要将文件放置在现有的 EFI 和引导分区上因此需要熟悉开发板的固件。引导模型很简单mr - bml 位于 EFI 系统分区它从 ext2/3/4 分区读取菜单和内核所选变体随后从 fs - qrv 分区挂载自己的根目录。安装步骤将 mrbml - riscv64.efi 复制到 ESP 中命名为 EFI/BOOT/BOOTRISCV64.EFIUEFI 可移动媒体路径或者使用 efibootmgr 将其注册为引导条目。在引导/根文件系统上创建 /boot/qsoe/ 目录并将内核复制到该目录QSOE/N 使用 skimmer.bin modpkg.cpioQSOE/L 使用 qsoe - l - sifive.elf。创建 /boot/mr - bml/mr - bml.cfg 文件每种变体对应一个条目例如# /boot/mr - bml/mr - bml.cfg — 根据磁盘调整 mainfs 分区menuentry QSOE/N (Skimmer) { kernel /boot/qsoe/skimmer.bin mainfs/dev/nvme0n1p8 modpkg /boot/qsoe/modpkg.cpio}menuentry QSOE/L (seL4) { kernel /boot/qsoe/qsoe - l - sifive.elf mainfs/dev/nvme0n1p8}mainfs 指定了包含 QSOE 根文件系统fs - qrv的分区需将其设置为开发板上分配给 QSOE 的分区。在真实硬件上没有 QEMU virtio 分区的区别两种变体都直接驱动 NVMe 磁盘。从源代码构建 QSOEQSOE 使用 riscv64 - linux - gnu - 交叉工具链rv64gc和标准 make 进行构建QEMU 可用于测试。主仓库负责协调构建过程并拉取与发布标签匹配的组件仓库。git clone https://gitlab.com/qsoe/oscd osmake prepare # 获取此标签对应的组件详见 component.listmake # 构建两种变体先 QSOE/N再 QSOE/Lmake dist # 可选生成 QEMU 磁盘镜像nvme.img.gz, virtio.img.gzQSOE/L 在 make prepare 过程中还会浅克隆 seL4 内核。构建过程会生成下载列表中的所有文件。整个项目遵循 Apache - 2.0 许可证源代码位于指定处。QSOE 文档情况QSOE 手册以 PDF 格式与版本一同发布[Design.pdf]架构文档介绍双内核模型、任务管理器、IPC 和资源管理器设计。[UserGuide.pdf]用户指南涵盖安装、shell、基本命令、文本编辑器和实用工具。[ProgrammingBook.pdf]编程手册包括资源服务器框架章节。[AppPortingGuide.pdf]应用移植指南介绍如何将 Unix和 QNX软件移植到 QSOE包括 fork()、brk()、select() 等的处理。QSOE 路线图规划人们常说 Linux 内核没有路线图但 QSOE 有。从当前的 0.1 版本到统一的 1.0 版本规划了十个版本。这是一个工作计划而非承诺随着工作推进里程碑可能会调整。0.1首次公开版本。双内核基础共享用户空间/usr 目录下为只读 fs - qrv支持交互式 getty 登录源代码开放。当前版本0.2在 GK208“Kepler”上实现文本模式控制台可在设备上显示便于在硬件上查看实时音频工作而不仅通过串口查看。0.3首个可写文件系统qrvfs 支持文件创建/删除、O_CREAT/O_TRUNC、realpath 和符号链接解析。0.4经典的双面板文件管理器QSOE 的旗舰应用全面测试可写文件系统和用户空间。0.5首个 deva - hdmi 音频设备为硬实时路径奠定优先级/中断/调度基础。0.6全面的一致性套件和音频实时包在 N 核系统上支持最多 N 个硬实时任务。0.7临近时确定具体内容。0.8第二个硬件目标SpaceMiT K3RVA23 类和 AIA 中断架构IMSIC/APLIC使 MSI/MSI - X 在各开发板上统一工作。0.9推动 QNX - libc 兼容性重新编译并运行一组 QNX 源代码实用工具填补剩余的 libc 差距。1.0首个稳定版本API 与 QNX 6.x 相当旨在移植 QNX 用户空间软件fork → posix_spawn。其他相关项目早期及相关工作[GateMate PC]基于 Cologne Chip GateMate FPGA 构建的个人计算机。[GateMate System/359]受 IBM S/360 启发的 FPGA 计算系统实现具备 I/O 通道和强大的宏汇编器。[QRV]QNX 到 RISC - V 的移植历史项目为 QSOE/N 提供了硬件启动经验。QSOE 服务内容提供底层和系统软件的咨询与开发服务基于微内核的操作系统系统库和底层运行时实时应用的虚拟化RISC - V 系统启动FPGA 的 AI 辅助开发服务范围从专注的启动工作到长期的架构设计和实现。欢迎联系讨论具体需求。关于 QSOE 系统QSOE 系统是 Yuri Zaporozhets 的独立项目。Yuri Zaporozhets 是一位拥有 25 年以上底层软件开发经验的系统软件开发者曾参与内核、操作系统、运行时以及相关硬件启动工作。联系 QSOE电子邮件是联系的最佳方式。邮箱地址及其他相关平台信息可获取。QSOE 系统未来会如何发展能否顺利达成路线图中的目标呢