QSOE 0.1 最反常的地方,是同一个操作系统同时给了两套微内核。

一套是项目自研的 Skimmer,对应 QSOE/N。另一套是 seL4,对应 QSOE/L。两者共享同一用户态和构建系统,真正贴着内核改的,主要是 taskman 和 libc.so 里的适配层。

这不是桌面系统,也不是 Linux 替代品。它现在只盯着 64 位 RISC-V,已在 QEMU 和 SiFive HiFive Unmatched FU740 真机启动。范围很窄,但窄得诚实。

QSOE 0.1 发了什么

QSOE 走的是 QNX Neutrino 那条老路线:小内核、同步消息传递 IPC、用户态服务、resource-manager 模型。

内核少做事。驱动、文件系统、系统服务尽量放到用户态。这个思路不新,QNX 很早就证明过它能在嵌入式和实时场景里活下来。

这次 0.1 的信息可以压成一张表:

项目现在能看到什么该怎么判断
QSOE/N基于自研 Skimmer 微内核项目自己的内核路线,适合看架构设计与移植能力
QSOE/L基于 seL4 内核借 seL4 做另一套底座,但不能把 seL4 的形式化验证直接算到整个 QSOE 系统头上
用户态QSOE/N 与 QSOE/L 共享同一用户态这是最值钱的工程点,不是截图式演示
构建与镜像共享构建系统,发布 Skimmer、seL4 版本镜像、modpkg.cpio、EFI bootloader、QEMU 磁盘镜像等作者在处理启动链、打包、镜像分发这些苦活
硬件目标是 64 位 RISC-V,已覆盖 QEMU 与 FU740 真机启动硬件范围很窄,但已经越过“只在模拟器里跑”的门槛
系统能力0.1 只有只读 fs-qrv、基础 login、shell 等早期公开版,不是可生产部署的系统
路线1.0 才追求接近 QNX 6.x API现在看的是方向,不是成熟度

对开发者的动作建议也很简单。

如果你做 OS、嵌入式或 RISC-V bring-up,QSOE 0.1 值得拿来跑 QEMU,或在 FU740 上验证启动链。不要急着迁移项目。更现实的做法,是看它的用户态抽象、构建方式、IPC 与资源管理模型怎么落地。

如果你在企业里做选型,这版只能列入技术观察或内部实验。采购、替换、量产,证据都不够。

真看点是“双内核同用户态”

微内核从来不缺漂亮叙事。

Mach、QNX、L4、seL4,都把理念讲过很多遍:内核更小,边界更清楚,服务可替换,隔离更强。论文里很好看,工程里很难熬。

“纸上得来终觉浅”。操作系统尤其如此。

难点不在写一个能调度线程的内核。难点在驱动、文件系统、C 库、启动流程、调试工具、硬件适配,以及用户态服务怎么长期维护。

QSOE 0.1 的价值,就卡在这里。

它不是只证明“我也能写微内核”。它在证明另一件更难的事:用户态能不能从具体内核里拆出来。

如果同一套用户态能跑在 Skimmer 和 seL4 上,内核就不再是唯一地基,而更像可替换后端。这个判断现在还不能拔太高,但方向很清楚。

这对两类人有直接意义。

对象现在该看什么不该做什么
OS / 微内核开发者看 IPC 抽象、taskman、libc 适配层、启动链如何隔离内核差异不要只看内核代码就下结论
嵌入式 / RISC-V 团队用 QEMU 或 FU740 验证镜像、启动、资源管理模型不要把它当可替代 Linux 或 QNX 的量产系统

这里还有一个容易误读的点:QSOE/L 用了 seL4,不等于整个 QSOE/L 都继承了 seL4 的安全证明。

seL4 的形式化验证覆盖的是内核相关性质。QSOE/L 上面的用户态服务、文件系统、构建链、配置方式,仍然要单独接受工程检验。把“内核可信”说成“系统可信”,是行业里很常见的偷懒。

我不太买账这种光环转移。

真正该看的,是 QSOE 有没有把内核边界压干净。抽象太薄,换不了内核;抽象太厚,性能、调试和维护都会反咬一口。微内核的好处和代价,往往都藏在这条缝里。

它验证的是一条被 Linux 遮住的路线

QSOE 0.1 不是来挑战 Linux 的。至少现在不是。

Linux 的强,不只是内核强。更强的是驱动、文件系统、工具链、社区、软件包、硬件厂商适配。这套东西像铁路网。你可以造一台更精巧的车,但没有轨道,跑不远。

QNX 的强项也不是“微内核”四个字,而是多年打磨出来的实时场景、资源管理、工具链和商业支持。seL4 的强项是内核验证,不是自动给你一个完整嵌入式 OS。

QSOE 当前的位置更像试验台:RISC-V 真机、QNX 式 IPC 与 resource-manager、两套微内核、同一用户态。

这个试验台值不值得继续看,取决于几个硬变量:

变量为什么关键现在的状态
可写文件系统没有写入能力,系统很难进入真实开发循环0.1 仍是只读 fs-qrv
驱动与中断架构真机支持能否从 FU740 扩出去,靠这部分见真章FU740 已启动,SpaceMiT K3 仍属于后续目标
QNX API 兼容如果能稳定迁移一批 QNX 用户态软件,价值会明显抬高路线图到 1.0 才追求接近 QNX 6.x API
构建与调试体验系统软件能不能被别人复现,决定它是不是项目而不是作品已有镜像和构建分发,但还需更多外部验证

我更在意的是第三项:QNX API 兼容。

如果它最后只是一个能启动的微内核玩具,意义有限。如果它能把一部分 QNX 风格用户态软件带到 RISC-V 上,还能在 Skimmer 和 seL4 之间切换底座,那才有行业价值。

这条路不会快。

微内核项目常见的死法,是前半段讲架构,后半段死在杂活。文件系统、驱动、板级支持、工具链、调试体验,哪一项都不性感,哪一项都能耗死人。

QSOE 0.1 至少把这些脏活摆出来了:bootloader、initrd、NVMe、virtio、EFI、构建系统、真机启动。

这不浪漫,但靠谱。

它现在最大的意义不是“强”,而是“可验”。能不能跑,能不能构建,能不能换内核,能不能上真机,都有明确入口。系统软件最怕宏大叙事,最需要这种可被别人拆开的样品。

所以我的判断很克制:QSOE 0.1 离可用还远,但已经把微内核讨论从信仰题推向工程题。

这一步不大。可在操作系统里,能落到板子上的一小步,比十页架构宣言更硬。