Linux insides笔记(一)

作为一个web前端工程师,我准备写写linux insides的笔记,看着一些操作系统的东西,总是想起那些年翻看osdev wiki的日子,三十天没能自制的操作系统,还有半途而废的halfdogOS╯﹏╰ 

开始正文。

 计算机上电,cpu初始化程序指针到rom的里oxfffffffo的位置。 

进入实模式,一个古老的从8086兼容下来的模式,寄存器只有16位,总线只有20位,结果就是地址空间只有1m,为了让16位寄存器只能表示64k的寄存器寻址1mb空间,先人们发明了分段这种东西。 两个寄存器,一个表示分段起始地址,一个表示偏移,这样就相当于32位寄存器能寻4g地址,可惜实模式地址空间只有1mb 好吧,

oxfffffffo包含跳转到bios的指令,依然在rom里,bios就干了硬件自检等一大票事,然后找到可引导硬件。 比如,硬盘的第一个512字节扇区,这个扇区要按规矩设定,比如最后是oxaa55啥的。 

Bios会把比如这个区域的代码载入ram地址ox7coo跳转,当然实模式下,其他地址各做什么用途都规定好了,bios该初始化啥数据该放哪应该也放哪了,

然后 程序运行到ox7coo,bootloader这种东西,就可以从这里开始了

 下回分解,哈哈,好歹我也rolling my own bootloader过,然而好像不怎么懂linux insides下一章在说啥⊙▽⊙


 干杯!

你可能感兴趣的:(linux)