为什么要先建立三层世界观?
源码层 · 构建层 · 运行层 —— 操作系统实验的第一课
hello.c 的旅程:三层逐层点亮
源码层
人能读懂的程序文本
.c / .h 文件Makefile设计与维护
构建层
把文本翻译成机器可执行的形式
gcc / make可执行文件内核镜像
运行层
装入内存,交给 CPU 真正执行
进程CPU 执行OS 调度
编译 · 汇编 · 链接 加载 · 调度
理由一:排错定位
源码层
人能读懂的程序文本
.c / .hMakefile
构建层
把文本翻译成机器可执行的形式
gcc / make可执行文件
运行层
装入内存,交给 CPU 真正执行
进程OS 调度
编译 · 汇编 · 链接 加载 · 调度
syntax error:编译阶段
undefined reference:链接阶段
segmentation fault:运行阶段
理由二、三:课程主线与实验循环
源码层
组织内核模块
改源码
构建层
生成内核镜像
make
运行层
QEMU 启动并观察行为
看结果
重新构建 重新运行
实验循环:改源码 → 重新构建 → 重新运行 → 观察
总结
源码层 = 图纸
人读的文本:设计与维护(.c / .h / Makefile)
构建层 = 工厂
翻译与组装:gcc / make → 可执行文件 / 内核镜像
运行层 = 开动的机器
装入内存变成进程:CPU 执行 + OS 调度