本文节选自《奔跑吧linux内核 入门篇》第二版第16章
学习操作系统最有效且最具有挑战性的训练是从零开始动手写一个小OS(操作系统)。目前很多国内外知名大学的“操作系统”课程中的实验与动手写一个小OS相关,比如麻省理工学院的操作系统课程采用xv6系统来做实验。xv6是在x86处理器上重新实现的UNIX第6版系统,用于教学目的。清华大学的操作系统课程也采用类似的思路,他们基于xv6的设计思想,通过实验一步一步完善一个小OS——ucore OS。xv6和ucore OS实验都采用类似于英语考试中完形填空的方式来引导大家实现和完善一个小OS。
动手写一个小OS会让我们对计算机底层技术有更深的理解,我们对操作系统中核心功能(比如系统启动、内存管理、进程管理等)的理解也会更深刻。本章介绍了24小实验来引导读者在树莓派上从零开始实现一个小OS,我们把这个OS命名为BenOS。
本章需要准备的实验设备如下。
-
硬件开发平台:树莓派3B或树莓派4B。
-
软件模拟平台:QEMU 4.2。
-
处理器架构:ARMv8架构(aarch64)。
-
开发主机:Ubuntu Linux 20.04。
-
MicroSD卡一张以及读卡器。
-
USB转串口线一根。
-
J-Link仿真器(可选 )。
本章用到的芯片手册如下。
-
《ARM Architecture Reference Manual, ARMv8, for ARMv8-A architecture profile》的v8.4版本。
-
《BCM2837 ARM Peri