使用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课:网络(要完成)
