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 离可用还远,但已经把微内核讨论从信仰题推向工程题。
这一步不大。可在操作系统里,能落到板子上的一小步,比十页架构宣言更硬。
