BIOS開機boot流程筆記
幾年前學生時代的筆記,不確定正確性
PA: physical address
VA: virture address
按下開機紐,送出signal給主機板叫他開始power supply
在所有裝置都收到正確的power後,主機板送Power OK signal給Bios
當BIOS收到Power OK signal,BIOS開始執行POST(Power On Self Test):
檢查是否所有裝置都有正確power與是否有memory corrupted
執行完POST後,BIOS開始尋找512 bytes的Bootsector(ex:開機碟)
BIOS藉由檢查Bootsector的第511 byte為0x55,512 byte為0xAA來確定該Bootsector是bootable
確定後bios會將bootsector load進memory的0x7c00(PA) == 0x0000:0x7c00(cs:ip VA)
所以bootsector程式通常會有兩段程式
需注意的是0x07c0:0x0000(VA)與0x0000:0x7c00(VA)是指相同的0x7c00(PA)
因為在real mode下,0X007C0<<4 + 0X00000 == 0X00000<<4 + 0X07C00
(real mode下VA與PA轉換方式CS<<4+IP == PA)