“万物皆文件,唯有内存最真实。” —— 一个正在手搓内核的C++程序员
这个仓库是我跟着 李述铜老师 的课程《从0开始手写x86 Linux操作系统》边学边写的实战项目,试图重新认识“计算机到底是怎么动起来的”。
- x86保护模式下的编程
- 引导程序:接管控制权
- 加载器loader的实现
- 中断与异常处理
- 日志与printf格式化输出
- 实现简单的进程切换
- 实现链表数据结构
- 进程的管理与延时
- 进程间的同步与互斥
- 虚拟内存管理和保护模式
- 隔离操作系统与进程
- 建立系统调用
- 新进程的加载与创建
- 使用c标准库中的printf输出
- 使用控制台与键盘进行输入输出
- 设备管理与文件系统
- 实现一个命令行解释器
- 使用文件系统管理硬件设备
- 磁盘与fat16文件系统
📌 总目标:写出一个可以跑在 qemu/bochs/真实硬件 上的 mini Linux 内核!
系统功能如下:
- 支持多进程运行
- 支持shell加载磁盘上应用程序运行
- 支持虚拟内存管理,实现进程之间的隔离
- 键盘和显示器的支持
- 引用标准C库,使得应用程序开发更加方便
- 十余个系统调用:fork()、execve()、open()、write()、exit()等
- 进程与操作系统不同特权级分离
- 李述铜:从0开始手写x86 Linux操作系统
- 王柏生/王晟寒:穿越操作系统迷雾 从零实现操作系统
- QEMU 模拟器:https://www.qemu.org
- Bochs 模拟器:http://bochs.sourceforge.net

