Rust树莓派操作系统教程 rust-raspberrypi-OS-tutorials

⭐⭐⭐☆☆ (3/5) 🧩 软硬件结合 已发布
rust-embedded 3488 Stars 未知 BOM 完整度: /5 教程完整度: /5

项目简介

:books: Learn to write an embedded OS in Rust :crab:


这是一个面向操作系统爱好者的实战教程项目,旨在引导开发者从零开始,使用 Rust 语言在树莓派上编写一个完整的、单内核架构的操作系统内核。项目由一系列循序渐进的教程组成,每个教程都包含一个独立可启动的内核二进制文件,并基于前一个教程进行功能扩展,非常适合希望深入理解底层系统原理的开发者。

标签

项目特点

**逐步递进**:每个教程包含一个独立、可启动的内核二进制文件,新教程在前一个基础上扩展。
**双平台支持**:代码可在树莓派3和树莓派4上运行,前5个教程可在QEMU中模拟。
**模块化设计**:代码结构清晰,易于移植到其他CPU架构(如RISC-V)或开发板。
**Docker容器化**:提供预装所有工具的Docker容器,消除工具链配置的痛点。
**丰富的文档**:每个教程提供tl;dr摘要、源码diff,部分教程有详细文字说明,并支持`make doc`生成代码文档。
**便捷的调试与加载**:开发了Minipush工具,可通过UART按需加载内核到树莓派,并支持OpenOCD和GDB调试。

技术规格

目标架构
支持硬件
模拟器
编程语言
交叉编译
调试工具
加载工具
容器化
许可证

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
Raspberry Pi 3 或 4 1 主目标板
MicroSD卡 1 用于启动内核
USB转串口线(CP2102芯片) 1 推荐,用于UART输出
杜邦线 若干 连接串口到GPIO 14/15
Docker Engine 1 用于运行工具容器
Rust工具链 1 通过rustup安装
cargo-binutils 1 Rust工具
rustfilt 1 Rust符号过滤工具
QEMU 1 用于模拟运行(前5个教程)
Minipush 1 自研UART加载工具
OpenOCD 1 调试工具
GDB 1 调试工具

所需工具

工具用途是否必需
3D打印机 打印外壳和结构件 ▢ 推荐
焊台 焊接电子元件 ▢ 推荐
螺丝刀 安装硬件 ▢ 推荐
计算机(Linux/macOS) 开发环境 ✅ 是
USB转串口线 连接树莓派进行UART通信 ▢ 推荐

能力画像

记忆与知识检索
3/5
逻辑推演
4/5
表达与交流
2/5
感知与观察
2/5
数理与计算
4/5
动手与操作
3/5
狂热与坚持
5/5
创造与创新
4/5

所需技能

🔧 **动手能力**:需要连接USB转串口线到树莓派GPIO引脚,准备SD卡,以及基本的硬件操作。 💻 **编程能力**:需要Rust编程基础,理解操作系统概念(如中断、内存管理、异常处理),熟悉命令行操作。 ⚡ **电子电路**:了解UART通信原理,能正确连接串口线到树莓派的GND、GPIO 14/15引脚。

适用场景

**嵌入式操作系统学习**:适合想从零开始学习操作系统开发,特别是ARMv8-A架构的爱好者。
**Rust系统编程实践**:适合想深入Rust在底层系统编程中应用的开发者。
**树莓派裸机编程**:适合想在树莓派上运行自定义内核的极客。
**教学与培训**:可作为大学操作系统课程或Rust培训的实践项目。
**研究原型开发**:适合需要快速原型化嵌入式操作系统概念的研究人员。