Home
Chunchi Che muokkasi tätä sivua 2 vuotta sitten

RustSBI: RISC-V指令集监管者模式二进制接口Rust语言实现

简介

RustSBI项目源于2020年清华操作系统夏令营,旨在使用Rust语言编写RISC-V指令集中的SBI实现,支撑上层系统软件比如操作系统的运行。在国际SBI实现列表中获得编号四

模块式开发

RustSBI以依赖库和二进制项目两种形式呈现,该项目是依赖库。针对具体RV硬件平台,会分别有具体的具体实现项目。目前我们提供了qemu和勘智k210两个平台的参考实现:

具体平台实现可以由芯片或者SOC产商或者开源社区提供,作为底层支持软件的一部分。

Features

  • RISC-V指令集下支持操作系统运行的多功能且可扩展的底层运行时
  • 兼容0.2版本的SBI标准
  • 实现了大部分OpenSBI中的功能(有些功能自主选择不支持)
  • 附带SBI标准的测试框架
  • 对不同的RV硬件平台有很好的兼容性
  • 纯使用Rust语言实现

TODO

  • 全志哪吒开发板平台支持
  • HiFive Unleashed 开发版平台支持
  • SBI标准的更多拓展功能

Q&A

1.RustSBI可不可以用于C语言编写的操作系统?

当然可以。RustSBI严格遵循SBI标准,可以支持任何系统编程语言。

如果你的内核支持其他SBI实现比如bbl,OpenSBI,那么它也能支持RustSBI。

文档

关于平台实现

  • 本项目应该作为一个依赖库,结合某个具体硬件平台的Rust嵌入式支持库,去实现具体平台的RustSBI实现
  • 我们欢迎开源社区的朋友们来贡献代码,拓展RustSBI的多平台支持,无论是FPGA还是经过流片的芯片还是模拟器,你们的PR我们都欢迎!

开源协议

本项目支持双开源协议:

Documents from RISC-V SBI Specification are used in this project. These documents are (C) RISC-V Founcation under Creative Commons Attribution 4.0 International License (CC-BY 4.0). The full license text is available at https://creativecommons.org/licenses/by/4.0/.