raspberry pi os

C/C++ 2025-08-14

使用Linux内核和Raspberry Pi学习操作系统开发

该存储库包含一个逐步指南,该指南教授如何从头开始创建简单的操作系统(OS)内核。我称此OS raspberry pi os或仅RPI OS。 RPI OS源代码主要基于Linux内核,但是OS的功能非常有限,仅支持Raspberry Pi 3。

每个课程的设计方式首先解释了在RPI OS中如何实现某些内核功能,然后试图演示Linux内核中相同功能的工作方式。每个课程在SRC目录中都有一个相应的文件夹,该文件夹在刚刚完成时包含OS源代码的快照。这允许优雅地引入新概念,并帮助读者遵循RPI OS的演变。了解本指南不需要任何特定的操作系统开发技能。

有关项目目标和历史记录的更多信息,请阅读介绍。如果您愿意参加,该项目仍在积极发展中 - 请阅读贡献指南。

目录

  • 介绍
  • 贡献指南
  • 先决条件
  • 第1课:内核初始化
    • 1.1介绍RPI OS或裸机“ Hello,World!”
    • Linux
      • 1.2项目结构
      • 1.3内核构建系统
      • 1.4启动序列
    • 1.5练习
  • 第2课:处理器初始化
    • 2.1 RPI OS
    • 2.2 Linux
    • 2.3练习
  • 第3课:中断处理
    • 3.1 RPI OS
    • Linux
      • 3.2低级异常处理
      • 3.3中断控制器
      • 3.4计时器
    • 3.5练习
  • 第4课:过程调度程序
    • 4.1 RPI OS
    • Linux
      • 4.2调度程序基本结构
      • 4.3分支任务
      • 4.4调度程序
    • 4.5练习
  • 第5课:用户流程和系统调用
    • 5.1 RPI OS
    • 5.2 Linux
    • 5.3练习
  • 第6课:虚拟内存管理
    • 6.1 RPI OS
    • 6.2 Linux(正在进行中)
    • 6.3练习
  • 第7课:信号和中断等待(要完成)
  • 第8课:文件系统(要完成)
  • 第9课:可执行文件(ELF) (要完成)
  • 第10课:驾驶员(要完成)
  • 第11课:网络(要完成)
下载源码

通过命令行克隆项目:

git clone https://github.com/s-matyukevich/raspberry-pi-os.git