1.setup.s的作用
bootsect.s从软盘中把第2到5扇区的setup.s程序读入到内存0x90200地址处,那么setup.s到底做了什么呢?
第一件事,获取硬件的参数
第二件事就是将0x10000(64K)地址到0x8ffff这段system内核代码移动到0地址处。
第三件事就是临时设置了临时IDT和临时GDT表,为jmpi 0,8做准备
第四件事,就是进入保护模式,然后impi 0,8,跳到system里面的head.s执行
2.head.s作用
初始化页表GDT和IDT
然后跳到main函数执行
3.main
开始执行main函数
3.1.mem_init案例
end_mem >>=12 这个就是内存除以2^12(4KB),开始分页,一页的内容为4KB