Linux0.11源码学习–操作系统启动
Linux0.11启动过程
需要重点记住:cpu按照pc寄存器的值取值执行,取值后pc的值会加一
- 系统加电 从bios启动系统
系统加电时,cs 寄存器的值是0xFFFF pc 寄存器的值是0x0000
cs的值左移4位加上pc值等于0xFFFF0 ,cpu从0xFFFF0开始寻址,这个地址映射的bios rom,这段代码会检查内存、硬盘 等设备,并将硬盘的第一个扇区读入到内存的0x7C00处 - 硬盘的第一个扇区存放的程序源码为bootsect.s,是操作系统的引导程序,从这一步开始进入操作代码
- bootsect会依次读入setup和sytem,
启动引导试内核在内存中会移动,移动情况如下图:
- 从系统加电开始执行的几个文件顺序
BIOS—> bootsect.s —> setup.s —> System模块(head.s—>main.c)