一人,双内核,与大量RISC-V

Hacker News Top 新闻

摘要

QRV Systems的Yuri Zaporozhets在FPGA上构建了一台基于RISC-V的个人计算机和一台大型机,并两次重写了QNX。他最新的操作系统QSOE正在FOSS世界中引起关注。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/27 15:52

# 一人、两内核,大量RISC-V 来源:https://www.theregister.com/software/2026/06/26/one-man-two-kernels-and-a-lot-of-risc-v/5262858 QRV Systems(https://qrv-systems.net/)的Yuri Zaporozhets是个大忙人。他打造了一台基于RISC-V的新型个人电脑、一台FPGA上的大型机,还重写了QNX——两次。 似乎每隔一两个月,The Reg FOSS desk就会收到一封邮件,告诉我们他刚完成某个令人惊叹的项目。我们很高兴看到他最新的项目——一个名为QSOE(https://qsoe.net/index.html)的新操作系统——目前正在FOSS世界引起关注。 但首先,我们想通过描述他之前的一些项目,来讲述一个更完整的故事,关于他如何走到今天这一步。 (免责声明:我们觉得应该事先说明,他确实使用了Anthropic的Claude LLM来协助。值得肯定的是,他明确声明了这一点。) ### GateMate个人电脑 2025年底,Zaporozhets写信告诉我们他的GateMate个人电脑(https://gitlab.com/gatemate/pc)。GateMate PC类似于80年代末期相当高端的IBM PC兼容机,但它的CPU并非286或386,而是一个25 MHz的RISC-V内核。 他告诉我们GateMate PC的主要灵感来源:“我人生中看到的第一台电脑:一台1992年的IBM PS/2 Model 30(https://www.dosdays.co.uk/computers/IBM%20PS2%20Model%2030/ibm_ps2_model_30.php)。它也是从文本模式启动的。”我们曾用过几台那种机器,它们并不怎么样。GateMate机器应该能轻松超越后来更快的Model 30-286(https://www.userlandia.com/home/ibm-ps2-model-30-286)。他还提到了另一个项目:“Stefan Nolting的NeoRV32软CPU(https://github.com/stnolting/neorv32)很棒。” 它有一个VGA端口,可以输出80x30字符的文本,采用我们当年称之为Hi-Color(https://apple.fandom.com/wiki/16-bit_color)的模式。ROM有8 KB,包含一个BIOS,并且——尽管仍处于早期阶段——它有自己的操作系统,他称之为GMDOS。字符是双字节的,使用UCS-2 Unicode(https://www.twilio.com/docs/glossary/what-is-ucs-2-character-encoding)。 GateMate得名于其宿主机硬件,因为设计主要是软件:它实现于一块便宜的FPGA板卡上,即价值50欧元的Olimex GateMate A1-EVB(https://www.olimex.com/Products/FPGA/GateMate/GateMateA1-EVB/open-source-hardware)(约合42英镑或57美元)。其视频控制器是原创设计,他还增加了额外的RAM:该机器通过QSPI接口(https://embeddedinventor.com/quad-spi-everything-you-need-to-know/)在两颗芯片上拥有8 MB的额外PSRAM。 他博客记录了该项目,从去年8月的收到板卡(https://r-tty.blogspot.com/2025/08/the-board-is-on-table.html),到让PLL工作(https://r-tty.blogspot.com/2025/08/slowly-getting-to-basics.html),再到输出视频(https://r-tty.blogspot.com/search/label/txtmode-ucs2-video)。 然而,Olimex GateMate板卡还能做更多事情——这引出了他的下一个项目。 ### GateMate System/359 同样实现在同一块FPGA板卡上的,是Zaporozhets的微型大型机System/359(https://gitlab.com/gatemate/s359)。这并非IBM System/360大型机系列(https://www.theregister.com/on-prem/2014/04/07/why-wont-you-die-ibms-s/360-and-its-legacy-at-50/365150)的克隆——那些机器引入了不同计算机软件兼容的概念——它更像是一种致敬。首先,S/359是一台小端机器,而S/390是大端(https://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_s390.html#BYTEORDERING)。 所以它与大型机架构并非二进制兼容,但很相似。他在一月份开始了这个项目(https://r-tty.blogspot.com/2026/01/one-less-than-360.html),同月晚些时候,在撰写关于其汇编器(https://r-tty.blogspot.com/2026/01/asm359-enhancements.html)的文章时,他说道:“GMS/359保留了S/360的优美之处——通道I/O模型、清晰的指令格式、PSW(https://en.wikipedia.org/wiki/Program_status_word)概念——同时悄悄地对其他部分进行了现代化改造。小端字节。操作码优先编码。PC相对寻址。不再需要基址寄存器调整。‘/359’并非笔误。这是一个宣言:受其启发,而非与之兼容。” Zaporozhets告诉The Register:“有一个可用的汇编器,带有来自NASM的强大宏处理器。我从1999年到2004年是NASM的贡献者,并维护了它的RDOFF2部分。现在RDOFF2已从NASM 3.0中移除,但它继续存活在我的asm359项目中。 “目前处理器可以执行简单的IPL;通道I/O控制器已工作(PS/2键盘、UART、SYSINFO,甚至还有加密处理器(!))。一旦我完成PSRAM模块,我将开始处理SYS1.NUCLEUS。” 由此可见,除了RISC-V和FPGA,他对于底层系统设计也有相当的熟悉度。他的下一个项目涉及一个许多人推崇的操作系统:QNX。 ### 将QNX 6.4移植到RISC-V 尽管Zaporozhets在三月份就写信告诉了我们这件事,但他也在Reddit上公开发布了:QNX 6.4内核移植到RISC-V;向BlackBerry请愿,希望将旧的QNX源代码以Apache 2.0许可证重新授权(https://www.reddit.com/r/QNX/comments/1s04zre/qnx_64_kernel_ported_to_riscv_petition_to/)。 QNX与FOSS的关系时断时续。QNX自20世纪80年代就已存在,正如我们在2024年报道该公司将QNX 8作为非商业免费软件(https://www.theregister.com/software/2024/11/11/qnx-8-goes-freeware-for-non-commercial-use/425694)时所报道的那样。在那篇文章中,我们提到QNX在2007年发布了早期版本的源代码(https://www.qnx.com/news/pr_2471_1.html)。当时,QNX是自托管的,并拥有自己的桌面环境——我们在2013年非Linux PC操作系统综述(https://www.theregister.com/software/2013/11/01/fed-up-with-windows-linux-too-easy-get-weird-go-alternative/727787)中展示了其Neutrino GUI的截图,而GUIdebook上还有一个完整的截图库(https://guidebookgallery.org/screenshots/qnx621)。 第二年,那些QNX 6.4源代码从SourceForge镜像到了GitHub,至今仍在(https://github.com/vocho/openqnx)。Zaporozhets获取了这个早已过时的代码库,并将其移植到RISC-V,目标是他的FU740“工作站(https://www.sifive.com/boards/hifive-unmatched-revb)”。这并非完整的操作系统,只是“内核、进程管理器、C库、运行时链接器”。而且许可证非常严格:你可以研究并编译它,但不能重新分发。 他于2020年圣诞节期间开始了这项工作。“时机在某种意义上是合适的。RISC-V已经成熟。工具链已经稳定。原始的QNX源代码是32位ILP32,针对x86、ARM、MIPS、SH和PPC——没有64位移植存在,更不用说RISC-V了。在一次努力中同时完成LP64转换和架构移植,看起来正是那种漫长的假期封锁所催生的宏大、困难且令人满意的项目。” 但在初步努力之后,该项目沉寂了五年。当他重新拾起时,最终进行了大量重写。他将结果命名为QRV(https://github.com/r-tty/qrv)。 在三月份,他在一篇博客文章《QRV操作系统:首次发布》(https://r-tty.blogspot.com/2026/03/qrv-operating-system-first-publication.html)中描述了这一点。正如他所说:“为清晰起见:QRV并非对原始QNX源码的补丁。它是对32位ILP32代码库从头到尾的重构,成为一个面向RISC-V的64位LP64系统,并有意进行了简化。” 到四月底,QRV v0.27可以启动到多用户登录(https://r-tty.blogspot.com/2026/04/qrv-v027-multi-user-login-two-months.html)。一个月后,他宣布该项目以版本0.43(https://r-tty.blogspot.com/2026/05/qrv-v041v043-lock-free-era-and-final.html)完成:“这是QRV的最后一个开发帖子。该项目的目标是将QNX Neutrino 6.4移植到RISC-V 64位,在真实硬件上运行,并探索将干净的微内核架构引入现代开放指令集需要什么。这些目标已经实现。v0.43是最终版本。” 下一步是什么?好吧,由于QNX内核并非真正的开源,那么唯一的出路是切换到另一个真正FOSS的内核。嗯,我们说“一个”……为什么不能是两个呢? ### QSOE – 快速安全操作环境 结果就是QSOE(https://qsoe.net/index.html):“QSOE提供两种变体,共享一个用户空间和一个构建系统。QSOE/N运行在Skimmer上,这是一个为本项目从头编写的微内核(设计支持SMP);QSOE/L则将seL4作为其内核运行。” 正如The Register在2014年报道的那样,Secure Embedded L4是一个经过形式化验证的微内核操作系统(https://www.theregister.com/security/2014/07/28/secure-microkernel-that-uses-maths-to-be-bug-free-goes-open-source/1196944)。我们之前也写过其他使用它的操作系统:2022年,我们描述了新的Neptune OS项目(https://www.theregister.com/software/2022/02/24/neptune-os-to-add-windows-personality-to-sel4-microkernel/1009077),它是seL4、ReactOS和Wine的结合。然后,在2025年,我们关注了Ironclad(https://www.theregister.com/software/2025/11/10/ironclad-os-crafts-unix-like-kernel-in-ada-and-spark/541310),它将seL4与基于C的Gloire和一个Ada层结合。 围绕seL4构建有着非常严肃的先例,但QSOE并未止步于此:它还有自己本土化的内核,名为Skimmer,专为多处理器机器设计。Zaporozhets在这个领域已经工作了很长时间。在QSOE网站上,他提到了早在2003年构建一个免费的类QNX操作系统(https://qsoe-dev.blogspot.com/2026/06/a-free-qnx-like-operating-system-2003.html)的努力。它仍然在线——名为RadiOS(https://radios.sourceforge.net/)。 在《QSOE如何开始》(https://qsoe-dev.blogspot.com/2026/05/how-qsoe-started.html)中,他描述了灵感来源:作为后备选项,一个B计划,以防他向BlackBerry的请愿(https://github.com/r-tty/qrv/blob/main/PETITION.md)未能成功。我们对此表示同情。当我们报道QNX 8时,我们也没有从该公司得到任何有用的回应。 相反,他将从编写RadiOS和构建QRV(通过GateMate PC和微型大型机)中学到的一切,都亲力亲为地做了出来。现在,他已经发布了QSOE 0.1版本(https://qsoe-dev.blogspot.com/2026/06/qsoe-project-v01-is-released.html)。它采用Apache 2.0许可证,其源代码在GitLab上(https://gitlab.com/qsoe)。他还有一个新的开发博客(https://qsoe-dev.blogspot.com/)。 是的,可能涉及Claude,但他在ChatGPT发布(https://www.theregister.com/software/2022/12/03/openai-opens-doors-to-chatgpt-a-conversational-ai-model/1016861)的20年前就已经在构思这些想法了。®

相似文章

QSOE: 受QNX启发的双内核架构操作系统

Hacker News Top

QSOE项目v0.1发布,提供与QNX兼容的操作系统,包含两种微内核变体(自定义Skimmer内核和基于seL4的内核),共享用户空间,并支持SiFive Unmatched RISC-V硬件。

EMiX:超越单FPGA限制的仿真

Hacker News Top

介绍了EMiX,一种可扩展的多FPGA框架,用于仿真超出单FPGA资源限制的多核RISC-V架构,并通过跨八个FPGA的64核系统进行了演示。

我的2025年高端Linux PC 🐧

Michael Stapelberg

一篇关于在2025年组装高端Linux PC的详细博客文章,包括组件选择、设置以及故障排除有问题的Intel CPU。