mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1487 字
4 分钟
从零开始的操作系统系列导读
2024-03-05

我写操作系统内核的起因很简单:用了好几年 Linux,某天突然意识到自己压根不知道按下电源键之后机器到底干了什么。printf 怎么把字打到屏幕上?malloc 的内存从哪来?进程切换时 CPU 在做什么?这些问题靠看概念书是回答不了的,得自己动手写一遍。

市面上操作系统教材不少,但大多从概念出发,先讲进程调度、内存管理这些高层抽象,再回头补底层实现。这种路径能建立宏观认知,可对想搞清楚”从上电到运行程序整条链路”的人来说,总觉得少了点什么。我选择反过来,从按下电源键那一刻开始,逐行代码走完从硬件到软件的全链路。

这个系列做什么#

  • 从 512 字节的 MBR 引导程序开始,一路写到能输入命令的 Shell,最终得到一个在 QEMU 和真实硬件上都能跑的操作系统
  • 每一章都产出可运行的代码,不是模拟也不是伪代码,是真实的引导程序、内核和用户态程序
  • 覆盖 x86 保护模式、分页机制、中断系统、内存管理、进程调度、文件系统、系统调用、Shell 这些核心机制
  • 本系列不是 Linux 内核源码分析,也不是生产级操作系统的设计文档,它是一条从零到一的实践路径

需要什么前置知识#

  • x86 汇编语言基础:常用寄存器(EAX / EBX / ECX / EDX / ESP / EBP / ESI / EDI)、内存寻址方式、mov / jmp / call / ret / push / pop / int 等常用指令,本系列使用 NASM 语法
  • x86 CPU 工作模式:实模式(16 位,1 MB 寻址)和保护模式(32 位,4 GB 寻址)的区别,段地址 × 16 + 偏移地址的计算方式
  • C 语言编程:指针与内存操作、结构体与位域、链接器的基本概念(段、符号表、重定位)
  • 计算机组成原理:内存层次结构(寄存器 → Cache → 内存 → 磁盘)、中断机制、I/O 端口与内存映射 I/O

推荐书目和教程#

章节目录#

每个章节的代码在 souloss/os-learning 对应目录下,可直接运行。

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

从零开始的操作系统系列导读
https://blog.souloss.cn/posts/os/os-series-guide/
作者
Souloss
发布于
2024-03-05
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时