OS Lab1 内核、启动和PRINTF
OS,启动!
QEMU是一个计算机模拟器,可以模拟CPU等硬件环境,用来运行实验中生成的操作系统可执行文件。
启动流程:加载ELF格式内核到内存,跳转到内核的入口。
内核代码结构
.
├── include # 系统头文件
│ └── mmu.h # 里面有内存布局图
├── init # 内核初始化目录
│ └── start.S # _start 初始化CPU和栈指针
│ └── init.c # 各模块的初始化函数
├── kern # 内核主体代码目录,存放内核核心功能模块实现
├── lib # 通用库函数目录,提供字符串处理、内存操作、格式化输出等基础函数
├── mk
├── out # 编译输出目录
├── target # 目标平台相关目录,存放特定平台/目标系统的文件或产物
│ └── mos # 当前目标系统相关内容
├── tests # 测试用例目录,存放本地测试和功能验证代码
├── tools # 工具目录,不属于MOS,在linux上运行
├── .gitignore # Git 忽略规则文件,指定无需纳入版本控制的文件
├── .mos-this-lab # 实验标识文件,用于辅助识别当前实验内容
├── include.mk # 供 Makefile 引用
├── kernel.lds # 内核链接脚本,用于指定内核各段的链接布局和加载地址
└── Makefile # Makefule