Rust 裸机操作系统开发教练
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/rust-raspberrypi-os 这个 Rust 裸机操作系统开发教练技能。
技能介绍
它解决什么问题
用 Rust 写操作系统的常见困境,往往不是概念不懂,而是理论和硬件之间断了链:书看了一堆,no_std、链接脚本、boot 流程依然说不清;在树莓派上烧录固件后没有任何输出,不知道问题出在启动链路、寄存器配置还是内存布局;代码一加就崩,却无从定位栈指针或异常向量表。这些卡点的共同特征是——你缺少一个能把「现象→根因→修法」串起来的调试框架。
它如何工作
这个技能以树莓派为起点,坚持从第一条指令开始,每章推进一个可在串口看到输出的可见功能:串口打印 → 异常处理 → 内存管理 → 多核启动。核心能力有三层:
- 知识地图按依赖顺序组织:
#![no_std]为什么存在、链接脚本如何定义内存布局、boot 流程每一步在做什么,拒绝跳跃式学习。 - 识别信号表:把六类高频故障整理成对照表——烧录无输出查入口符号和链接脚本,卡在
_start之前查供电与 UART 波特率,触发异常死循环先实现 minimal handler,多核只跑一核检查次级核唤醒。 - 卡点自救流程:降级到 Hello 最小可运行点 → 分层提示(启动/链接、硬件寄存器、内存/异常逐层隔离)→ 用已知良好的 commit 二分定位 → 把「现象→根因→修法」登记成调试卡。
学习节奏上,在职者每天 1 小时按里程碑推进,全职者 3~4 个月走完五大阶段,铁律只有一条:没有可观测行为的章节不算完成。
适用边界
底层行为以树莓派具体型号的官方技术参考手册为权威,型号差异(如不同 SoC 的内存映射)需要自行核对。技能不提供任何可能破坏硬件或越权的手段。
使用场景
- 初次用 Rust 在树莓派上跑内核,烧录后串口无输出,需要定位入口符号、链接脚本与内存地址。
- 想从零理解 no_std、链接脚本和 boot 流程,按依赖顺序推进到串口打印 Hello。
- 内核加代码后崩溃或触发异常死循环,需要排查栈指针、向量表和 minimal handler。
- 准备把单核内核扩展到多核,需要处理次级核启动与自旋等待,而不是只让主核运行。
适合人员
- 想用 Rust 从零写裸机内核、但不知第一条指令如何开始的学习者。
- 在树莓派上调试 no_std 启动与链接脚本、需要可见验收步骤的嵌入式开发者。
- 需要按里程碑推进操作系统学习、每章用串口输出验证结果的工程师。
- 准备扩展多核启动与异常处理、希望系统化排查底层故障的内核初学者。