微内核Xous和开源芯片Baochip-1x用于创建安全的嵌入式系统
Andrew Huang(安德鲁·黄)和Sean Cross(肖恩·克罗斯)曾在过去设计了开源笔记本电脑Novena和智能手机创建平台Precursor,他们在第39届混沌通信大会(39C3)上展示了一款开源的SoC芯片Baochip-1x,该芯片旨在用于创建受保护的物联网(IoT)设备。该芯片设计用于与Andrew和Sean在过去五年中开发的微内核操作系统Xous配合使用。该芯片的电路图、用Verilog语言描述的硬件模块、模拟器以及相关设计文档均在CERN OHL 2.0开放许可下提供。Xous操作系统的代码使用Rust语言编写,并在Apache 2.0许可下分发。
提及创建自有SoC的原因时,作者指出市场上缺乏能够合理兼顾轻量化和具备执行安全系统能力的芯片。文章指出,嵌入式设备硬件领域存在两种极端:一种是带有内存管理单元(MMU)的全功能芯片,设计用于运行基于Linux内核的大型平台;另一种是没有MMU的简化芯片,通常使用Zephyr、chibios或rt-thread等操作系统,但这些系统无法提供足够的安全保证。
Baochip-1x芯片的创建者试图将ARM架构无MMU微控制器所特有的轻量化,与完整CPU中可用的内存隔离能力相结合。Baochip-1x中的MMU允许使用分页虚拟内存来隔离进程。Xous操作系统将虚拟内存功能与Rust语言提供的变量借用检查器(borrow checker)相结合,以创建安全高效的进程间异步消息传递机制。所实现的进程间交互模型允许分离不同的任务,同时保持内核的最小尺寸。
Baochip-1x SoC包含一个基于RISC-V指令集架构(RV32-IMAC)的32位VexRiscv CPU,支持Sv39地址转换方案(虚拟内存),以及一个基于PicoRV项目并支持RV32E指令集的四核输入/输出加速器BIO。VexRiscv的运行频率为400 MHz,而BIO为800 MHz。该SoC配备2 MB SRAM和4 MB非易失性RRAM。首批芯片将于2026年第二季度在台积电(TSMC)使用22纳米工艺(TSMC22ULL)制造。
Xous操作系统支持进程和线程,并基于一个紧凑的微内核和一组服务器(服务实现),这些服务器通过类似QNX风格的异步消息传递机制进行交互。服务器等待消息到达,并运行与接收到的消息相关联的用Rust语言编写的代码。内核负责将消息传递给服务器、为服务器分配处理器时间,以及将内存所有权从一个服务器转移到另一个服务器。
在内核级别执行的代码量最小(内核大小为4 KB),并尽可能将功能移入用户空间。除此之外,在用户空间实现了用于同步、任务调度、内存分配、硬件交互和网络交互的基元。图形服务器(graphics-server)也以服务的形式实现。
Xous的一个显著特点还在于提供了用Rust语言编写的标准C库的实现。