这是我根据 os-tutorial 以及 从零开始写 OS 内核 等多份资料产生思路而制作的一个操作系统教程,当前目录架构是每个章节实现一个核心特性,目前支持:
- 引导系统:自定义 MBR + Loader 引导链
- 内存管理:物理内存管理(PMM)、虚拟内存管理(VMM)、内核堆(KHeap)
- 中断系统:IDT、定时器、键盘中断
- 任务调度:抢占式多任务、Round-Robin 调度
- 同步机制:自旋锁、互斥锁、信号量、让出锁
- 进程管理:fork、exec、进程树
- 用户空间:TSS、Ring 3 切换、系统调用
- 设备驱动:VGA、键盘、ATA 硬盘
- 文件系统:VFS、SimpleFS、管道
- 交互式 Shell:命令解析、文件操作、内置命令
该教程的目标是让所有人都能很容易的 从零进行操作系统学习,开发与调试,每个章节只实现一个核心功能点,并且每个章节也都是基于上一个章节进行迭代开发的,所有章节都支持在 Linux/WSL 下进行 make 构建出 qemu 或者 virtualbox 所直接支持的 vhd 虚拟磁盘镜像;也支持通过 make run-vnc 等命令开启 VNC 远程连接支持等特性;