3 个版本 (重大更新)
新 0.8.0 | 2024年8月24日 |
---|---|
0.7.0 | 2024年8月22日 |
0.6.2 | 2024年7月9日 |
0.1.3 |
|
0.1.0 |
|
在 硬件支持 中排名第 347
每月下载量 168 次
用于 osdk-test-kernel
770KB
15K SLoC
Asterinas OSTD
Asterinas OSTD 是一个 Rust 操作系统框架,简化了使用 Rust 编写的操作系统内核的开发和创新。
概览
Asterinas OSTD 为 Rust 开发者提供了一个坚实的基础,以构建他们自己的操作系统内核。虽然 Asterinas OSTD 的起源来自 Asterinas,即第一个 framekernel,但 Asterinas OSTD 非常适合构建任何架构的操作系统内核,无论是 framekernel、单核内核还是微内核。
Asterinas OSTD 提供以下关键价值。
-
降低操作系统创新门槛。 从头开始构建操作系统并不容易。更不用说一个全新的操作系统了。在添加任何新颖或有趣的功能之前,操作系统开发者必须首先有一个可运行的系统,这必须包括管理 CPU、内存和中断的基本功能。Asterinas OSTD 已经奠定了这个基础,使得操作系统开发者不必自己处理操作系统开发中最底层、最容易出错、特定于架构的方面。
-
提高 Rust 操作系统的内存安全性。 Asterinas OSTD 将底层、面向机器的不安全 Rust 代码封装为高级、机器无关的安全 API。这些 API 经过精心设计和实现,以确保任何安全 Rust 调用者的内存安全性。我们构建 Asterinas 的经验表明,Asterinas OSTD 足够强大,允许一个功能丰富的、兼容 Linux 的内核完全使用安全 Rust 编写,包括其设备驱动程序。
-
跨 Rust 操作系统项目促进代码重用。 以 crate 的形式发布,Rust 代码可以在项目之间重用——除了操作系统。实现操作系统 A 功能或驱动的 crate 很难被操作系统 B 重用,因为该 crate 必须是
no_std
并且依赖于操作系统 A 提供的基础设施 API,这些 API 显然与操作系统 B 提供的 API 不同。通过 Asterinas OSTD 可以解决这种不兼容性问题,因为它可以作为不同 Rust 操作系统项目之间的共同基础,只要它们基于 Asterinas OSTD 构建。 -
通过用户模式开发提高生产力。 传统上,开发内核功能涉及无数次的编码、失败和在裸机或虚拟机上重启,这是一个痛苦缓慢的过程。Asterinas OSTD 通过允许在用户模式下快速测试高级操作系统功能(如文件系统和网络栈)来加速这个过程,使操作系统开发体验与应用程序开发一样顺畅。为了支持用户模式开发,Asterinas OSTD 不仅实现了裸机或虚拟机环境,还实现了 Linux 平台。
OSTD API
请参阅 API 文档。
依赖关系
~6–11MB
~220K SLoC