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

3/5 🧩 软硬件结合 已发布
rust-embedded 3488 Stars 未知 BOM 完整度: 0/5 教程完整度: 1/5
Rust树莓派操作系统教程

项目简介

: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调试。

技术规格

目标架构 ARMv8-A (AArch64)
支持硬件 Raspberry Pi 3, Raspberry Pi 4
模拟器 QEMU (教程1-5)
编程语言 Rust
交叉编译 由rustup自动处理
调试工具 OpenOCD, GDB
加载工具 Minipush (UART)
容器化 Docker
许可证 MIT OR Apache-2.0

项目资源

物料清单 (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 调试工具

能力画像

🔵 记忆与知识检索: 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培训的实践项目。
**研究原型开发**:适合需要快速原型化嵌入式操作系统概念的研究人员。