当前位置: 首页 > news >正文

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 - bml,QSOE 自己的引导加载器(适用于 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.cpio`,QSOE/L 使用 `qsoe - l - *.elf` 镜像之一 —— 并参考安装部分。

在 QEMU 下运行 QSOE

这是查看 QSOE 运行的最快方式,无需硬件,也无需处理 `- kernel` 参数。下载的 `nvme.img` 是一个自引导 UEFI 磁盘:QEMU 的固件从该磁盘运行 `mr - bml`,mr - bml 的菜单可直接从磁盘启动任意一种变体。

所需条件
  • `qemu - system - riscv64`:QSOE/N 需要版本 11.0.1 或更高(其 NVMe 需要 AIA 中断控制器)。
  • edk2 RISC - V UEFI 固件:在 Debian/Ubuntu 系统上,可通过 `qemu - efi - riscv64` 包获取。
  • 来自 [os] 仓库的启动器 `[run - nvme.sh]`:它会为每种变体配置合适的 QEMU 机器、固件和磁盘,无需手动操作。
运行步骤
# 解压镜像(如果需要 QSOE/L,添加 virtio.img.gz)gunzip 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 分区挂载自己的根目录。

安装步骤
  1. 将 `mrbml - riscv64.efi` 复制到 ESP 中,命名为 `EFI/BOOT/BOOTRISCV64.EFI`(UEFI 可移动媒体路径),或者使用 `efibootmgr` 将其注册为引导条目。
  2. 在引导/根文件系统上创建 `/boot/qsoe/` 目录,并将内核复制到该目录:QSOE/N 使用 `skimmer.bin` + `modpkg.cpio`,QSOE/L 使用 `qsoe - l - sifive.elf`。
  3. 创建 `/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 磁盘。

从源代码构建 QSOE

QSOE 使用 `riscv64 - linux - gnu -` 交叉工具链(rv64gc)和标准 `make` 进行构建,QEMU 可用于测试。主仓库负责协调构建过程,并拉取与发布标签匹配的组件仓库。

git clone https://gitlab.com/qsoe/oscd osmake prepare # 获取此标签对应的组件(详见 component.list)make # 构建两种变体:先 QSOE/N,再 QSOE/Lmake dist # 可选:生成 QEMU 磁盘镜像(nvme.img.gz, virtio.img.gz)

QSOE/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 K3,RVA23 类)和 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 系统未来会如何发展,能否顺利达成路线图中的目标呢?

http://www.jsqmd.com/news/1097179/

相关文章:

  • MATLAB实战:用fitdist函数搞定风速与光伏数据的Weibull和Beta分布拟合
  • Spring Boot 集成自定义线程池和异常处理
  • 2026图片去水印方法:免费手机电脑工具、APP软件与在线网站教程
  • 深度长文 | 计算机体系结构:核心原理、发展演进与未来趋势(计算机架构系列-1)
  • css中实现三角形的一些方法
  • Lenovo Legion Toolkit:深度自定义联想笔记本性能控制的终极解决方案
  • Proxy - KD 新方法:突破黑盒大语言模型知识蒸馏限制,性能超传统白盒技术!
  • 智慧教育平台电子课本下载工具:让教学资源触手可及
  • 西门子设备硬件安装调试经验速记系列1(IM151-1Standard扩展子模块-标准灯码故障识别)
  • 小程序公司排行榜有没有参考价值?选服务商更该看这几项
  • Android Studio实战:5分钟搞定OneNET设备数据实时监控(附完整Token生成代码)
  • 杰理之播提示音时连接第二个麦,第二个麦会出现无声问题【篇】
  • 鸿蒙 ArkTS 两大基础事件简单说明
  • 别再用fail2ban了?试试Linux系统自带的账户锁防暴力破解神器faillock
  • 谷歌浏览器多开
  • 太强了!输入关键词,这几款AI论文工具就能帮你搞定毕业论文
  • Windows系统文件abcCertFirm.dll丢失找不到问题解决
  • AI Agent 的模型路由:多模型切换与智能选择
  • 软考网络工程师中级
  • 2026年,行业内口碑好的90kw电力测功机工厂究竟哪家更值得选?
  • 霞鹜文楷:当传统书法美学遇见现代开源代码
  • 别再让老漏洞拖后腿:手把手教你修复CVE-1999-0526和CVE-1999-0554(附NFS安全配置)
  • 1998-2025年上市公司AI技术应用水平
  • 如何在5分钟内搭建专业的无人机强化学习环境:gym-pybullet-drones完整指南
  • AutoGen框架深度拆解:群聊、可定制发言人与嵌套Agent的编程范式
  • mavonEditor代码块增强攻略:提升技术文档编辑效率的完整解决方案
  • 人机协作环路:人在回路中决策节点、审批流转与Agent升级机制
  • CTFshow PWN入门实战:手把手教你用pwntools搞定pwn24(含shellcraft模块详解)
  • 如何高效使用智能漫画翻译工具:面向初学者的自动化解决方案
  • 如何用Sunshine搭建终极免费游戏串流系统:5分钟实现跨平台游戏自由