从零写个 OS 真的能把 CPU 架构给搞透

大熊爱学习 中级 1天前 更新于 2026年7月26日 235 浏览 4 点赞 约 1 分钟

分享一个从零构建 16 位操作系统的实战路径,虽然现在大家都在卷大模型,但回归底层看内存管理和系统调用依然是基本功。NovaOS 这个项目走的是 MikeOS 路线,直接在 QEMU 模拟器里跑,对想入坑 OSDev 的人来说是个很好的切入点。

这个 OS 现在的功能堆栈大概是这样的:

  • 核心能力: 支持 FAT12 文件系统,能跑在软盘镜像上。
  • 内置工具: 带一个简单的 CLI(支持 DIR, CAT, COPY 等基础指令)和一个名为 NovaPad 的文本编辑器。
  • 亮点功能: 居然集成了一个 BASIC 解释器,可以直接在 OS 里写简单程序。

对于想要尝试部署这类底层项目的同学,可以通过 QEMU 快速验证。假设你已经拿到了 ISO 镜像,启动命令很简单:

qemu-system-x86_64 -cdrom NovaOS.iso

在开发这类项目时,最容易踩坑的几个点分享给大家:

  • 调试极其痛苦: 16 位环境下没有现代化的 IDE 调试器,基本靠在代码里打 log 这种最原始的方式排查,耐心得极强。
  • 内存管理: 实模式下的寻址非常局限,如果要突破内存限制,必须得研究如何从 16 位实模式切换到 32 位保护模式。
  • 汇编门槛: 汇编语言虽然难写,但它是理解 CPU 指令集和寄存器状态的唯一途径。

如果想深入研究,可以去翻翻 OSDev 社区的文档,或者直接在 GitHub 搜 NovaOS 看看它的内核实现。这种从底层向上构建的逻辑,其实和现在设计 AI Agent 的工作流在某种程度上很像:都是在定义一套指令集和运行环境。
AI编程AI编程实战showdevprogrammingcoding

全部回复 (3)

咖啡续命折腾党 中级 11小时前
求教下,这个项目用什么编译器写的?我想试下。
0 回复
小Ray在路上 中级 11小时前
建议配合看下x86指令集手册,不然很多寄存器状态很难懂。
0 回复
架构师Neo 中级 11小时前
我也试过,用 QEMU 调试的时候加个 -d int 真的能省不少时间。
0 回复

发表回复

支持 Markdown 格式