可在开源 RISC-V 上的裸机操作系统

几款可在开源 RISC-V (如 QEMU、HiFive、VisionFive、Kendryte K210 等)上运行的裸机级操作系统或实时内核。这些系统通常不依赖 Linux 的庞大内核,而是直接操作硬件,适合嵌入式、教学或实时控制场景。


1. xv6-riscv

  • 定位: MIT 教学用操作系统,Unix V6 的 RISC-V 重写版
  • 特点 :
    • 约 10,000 行 C + 少量汇编,结构清晰
    • 支持多进程、简单文件系统、管道、exec
    • 运行在 QEMU RISC-V 或真实硬件
  • 适用: 操作系统课程、内核原理学习
  • 获取 : git clone https://github.com/mit-pdos/xv6-riscv.git

2. RustSBI + rustsbi-qemu / rustsbi-hal

  • 定位: RISC-V 的引导层(SBI 实现),但可扩展为极简运行时
  • 特点 :
    • 用 Rust 编写,内存安全
    • 提供 M-mode 的 SBI 调用接口(定时器、IPI、控制台)
    • 可作为裸机程序的底层支撑,或扩展为微内核
  • 适用: 安全关键系统、Rust 生态嵌入式开发
  • 获取: https://github.com/rustsbi/rustsbi

3. Zephyr RTOS

  • 定位: Linux 基金会托管的实时操作系统
  • RISC-V 支持 :
    • 支持 QEMU RISC-V32/64、HiFive1、ESP32-C3 等
    • 配置最小可达 8KB Flash + 4KB RAM
    • 支持多线程、信号量、消息队列、网络栈(可选)
  • 特点: 模块化 Kconfig 配置,POSIX 兼容层
  • 适用: 物联网传感器、可穿戴设备、工业控制
  • 构建 : west build -b qemu_riscv64 samples/hello_world

4. FreeRTOS

  • 定位: 最广泛使用的开源实时内核
  • RISC-V 支持 :
    • 官方移植支持 RISC-V RV32I/RV32IMAC/RV64I
    • 提供 GCC 和 IAR 工具链支持
    • 最小内核约 4-9KB ROM
  • 特点: 抢占式调度、极简 API、广泛社区生态
  • 适用: 商业产品、实时控制、快速上市
  • 获取: https://github.com/FreeRTOS/FreeRTOS-Kernel

5. RT-Thread Nano / RT-Thread Smart

  • 定位: 国产开源实时操作系统
  • RISC-V 支持 :
    • Nano 版最小 3KB Flash + 1.2KB RAM
    • 支持 QEMU RISC-V、GD32VF103、CH32V307 等
    • 提供 FinSH 命令行、DFS 文件系统、SAL 套接字抽象层
  • 特点: 组件化(软件包生态)、POSIX 兼容、国产芯片支持好
  • 适用: 国产 RISC-V 芯片开发、教育
  • 获取: https://github.com/RT-Thread/rt-thread

6. seL4 on RISC-V

  • 定位: 形式化验证的微内核(安全关键系统)
  • RISC-V 支持 :
    • 已验证移植到 RV64(Spike 模拟器、HiFive Unmatched)
    • 提供 capability-based 安全模型
    • 内核代码经过 C 代码级形式化证明
  • 特点: 高可靠、微内核架构、多服务隔离
  • 适用: 航空航天、汽车电子、安全网关
  • 获取: https://github.com/seL4/seL4

7. Tock OS

  • 定位: 嵌入式安全操作系统,用 Rust 编写
  • RISC-V 支持 :
    • 支持 HiFive1、ESP32-C3、OpenTitan 等
    • 内核与用户空间隔离,进程间内存安全
    • 基于 capsule 的驱动模型(编译时检查)
  • 特点: 安全优先、低功耗、适合传感器网络
  • 适用: 安全 IoT、学术安全研究
  • 获取: https://github.com/tock/tock

8. NuttX RTOS

  • 定位: POSIX 标准兼容的实时操作系统
  • RISC-V 支持 :
    • 支持 QEMU RISC-V、BL602、ESP32-C3 等
    • 完整 POSIX 线程、文件系统、BSD 套接字
    • 可配置为微内核或宏内核模式
  • 特点: 高度标准兼容、可运行 Lua/Python 脚本
  • 适用: 需要 POSIX 兼容的裸机场景
  • 获取: https://github.com/apache/nuttx

9. Hubris (by Oxide Computer)

  • 定位: Rust 编写的微内核,专为嵌入式设计
  • RISC-V 支持: 实验性支持(主要目标为 ARM Cortex-M)
  • 特点 :
    • 静态分配、无堆内存、任务隔离
    • 基于 IPC 的消息传递架构
    • 编译时确定资源,拒绝运行时失败
  • 适用: 高可靠工业控制(Oxide 用于服务器 BMC)
  • 获取: https://github.com/oxidecomputer/hubris

10. Bare-metal 教学框架

项目 描述 链接
rCore-Tutorial 清华 Rust 版教学 OS,从裸机到多核 https://github.com/rcore-os/rCore-Tutorial
os-tutorial-riscv 从零写 RISC-V OS 的教程代码 多个 GitHub 仓库
sifive/freedom-e-sdk SiFive 官方 SDK,含裸机示例 https://github.com/sifive/freedom-e-sdk

选择建议

需求场景 推荐系统 理由
教学/学习内核原理 xv6-riscv / rCore-Tutorial 代码精简,文档完善
商业实时控制 FreeRTOS / Zephyr / RT-Thread 生态成熟,文档丰富
高安全/形式化验证 seL4 数学证明可靠
Rust 生态/内存安全 Tock / Hubris / RustSBI 语言级安全保证
POSIX 兼容/快速移植 NuttX 标准 API,Linux 代码易迁移
极简资源(<<16KB) RT-Thread Nano / FreeRTOS 裁剪后体积极小
相关推荐
冬奇Lab3 小时前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
uniquejing10 小时前
《每次 API 调用前扔掉 43% Token,我开源了一个 AI 提示词瘦身工具》
开源
文心快码BaiduComate2 天前
Comate 搭载GLM-5.2:百万上下文,稳定支撑长程任务
前端·程序员·开源
冬奇Lab2 天前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
下班走回家2 天前
DeepSeek 开源模型的突破与思考:从技术到生态的全面进化
人工智能·开源
ApacheSeaTunnel2 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
国产化创客2 天前
ESP32 CameraWebServer 原生摄像头项目全解析
物联网·开源·嵌入式·实时音视频·智能硬件
ofoxcoding2 天前
GLM 5.2 使用教程:API 接入配置、价格说明及 MIT 开源权重发布计划
ai·开源
X54先生(人文科技)2 天前
《元创力》纪实录·卷宗2.2 会议室的裂缝:当“真实高于完美”第一次被写在会议纪要里
人工智能·开源·ai写作·零知识证明
tianyuanwo2 天前
深入解析 RISC-V 虚拟化中的 UEFI 固件配置:从 XML 到 NVRAM 的生命周期管理
xml·linux·risc-v