|
@@ -1 +1,36 @@
|
|
|
# 什么是 RustSBI?
|
|
|
+
|
|
|
+感谢您选择 RustSBI!RustSBI 是一款综合的安全引导解决方案。RustSBI 主要由 Rust 语言编写,适用于 RISC-V 的 Supervisor Binary Interface(SBI)架构,是遵守 MIT 或 Mulan-PSL v2 双协议发布的开源软件。RustSBI 在有效提升 RISC-V SBI 接口软件开发效率的同时,提供可供下载的二进制固件包,并包含大模型 Agent 应用模块,便于用户使用和二次开发。
|
|
|
+
|
|
|
+RustSBI 已被 RISC-V 基金会收录为官方推荐的 RISC-V SBI 实现之一,它的实现编号为 4。
|
|
|
+
|
|
|
+## RISC-V SBI 与 RustSBI
|
|
|
+
|
|
|
+在 RISC-V 架构中,特权级分为用户态(U-Mode)、内核态(S-Mode)和机器态(M-Mode)。其中,内核态运行的环境应当具有 SBI 接口,以支持内核启动和运行的必需基础功能;这一环境在裸机上通常由机器态(M-Mode)提供,通常称作 SBI 固件。在裸机平台上,SBI 固件具有引导、调试和可信环境的功能,可通过通用和专有 SBI 接口等多种形式实现,以支持内核态系统软件的正常运行。
|
|
|
+
|
|
|
+考虑到虚拟化环境时,虚拟化宿主态(HS-Mode)环境也可提供 SBI 接口,用于取代机器态,支持位于其中的虚拟机系统正常运行。此时,内核运行于虚拟内核态(VS-Mode),运用虚拟化软件提供的 SBI 接口等功能运行于虚拟化平台。
|
|
|
+
|
|
|
+模拟器使得内核的开发、验证工作不受宿主平台的限制。与裸机硬件相同,RISC-V 模拟器仍然需要为运行于其中的系统软件提供 SBI 接口等支持功能。RISC-V 模拟器运行于各个宿主平台,有的提供机器态(M-Mode)模拟运行环境,也有的提供内核态(S-Mode)运行环境。
|
|
|
+
|
|
|
+RustSBI 项目可同时适用于裸机固件、虚拟化环境和模拟器的开发工作。RustSBI Prototyper 是 RustSBI 提供的裸机固件实现,以动态固件等多种形式提供裸机 SBI 固件的实现方案,可与不同的引导生态软件配合使用。当开发虚拟化环境和模拟器时,RustSBI 提供了不同风格的依赖库,并展示从实际需求出发的样例程序,以简化 SBI 接口代码的开发工作。
|
|
|
+
|
|
|
+## 使用 Rust 语言开发
|
|
|
+
|
|
|
+RustSBI 项目使用可靠、安全的 Rust 语言。RustSBI 项目在发布前经过多项软件测试,包括单元测试、集成测试,并具有专用的测试用内核框架。视应用场景而定,RustSBI 提供从裸机固件到依赖库的多种实现方案,具有一定的可扩展性,每个库都具有详细的 Rust 文档和测试用例,供用户和开发者自由选择和参考。
|
|
|
+
|
|
|
+需要注意的是,即便 RustSBI 的各个方案都以 Rust 语言实现,并非意味着 RustSBI 仅能引导和支持 Rust 语言的操作系统。RustSBI 可支持包括 C 语言在内的多种高级语言操作系统,只要它遵守 RISC-V SBI 规范标准。其它编程语言的软件也可启动 RustSBI 的功能模块,如裸机固件和测试用内核等,因为它们的开发过程都严格遵守 RISC-V SBI 规范标准和相关行业标准。
|
|
|
+
|
|
|
+## 项目组成
|
|
|
+
|
|
|
+RustSBI 项目由以下模块构成。
|
|
|
+
|
|
|
+- 根基础服务与技术标准模块:由 RustSBI 标准结构、算法和操作系统支持包组成;
|
|
|
+- 裸机固件支持包模块:由 RustSBI Prototyper 裸机引导程序固件项目组成;
|
|
|
+- 平台支持模块:由各芯片系列的裸机硬件抽象层(HAL)支持包组成,与 Rust 生态共享支持模块;
|
|
|
+- 大模型应用:由 RustSBI Agent 问答智能体等项目组成。
|
|
|
+
|
|
|
+在第二章中,我们将详细介绍 RustSBI 的核心模块,它具有核心抽象、函数和常量支持等多个功能,便于开发模拟器和虚拟化平台。第三章将主要介绍 RustSBI Prototyper 裸机引导程序,它可在裸机平台运行,支持运行于真实硬件和模拟器的裸机操作系统。第四章介绍平台支持模块,它构成组件化的驱动程序,同时运用于 RustSBI 和 Rust 系统软件生态,具有相关的支持程序。
|
|
|
+
|
|
|
+在产品介绍之后,各平台、系统支持将于第五章、第六章介绍。第七章将详细阐述如何运用 RustSBI 开发用户所需的系统软件模块;第八章介绍 RustSBI 孵化中的软件模块,如 RustSBI Agent 等大模型应用和 ArceBoot 引导程序。第九章介绍如何将 RustSBI 与生态中的各个引导软件联动使用,例如与 Oreboot 联合使用;第十章介绍 RustSBI 开源社区生态和贡献方法。
|
|
|
+
|
|
|
+让我们开始吧!
|