在傳統的BIOS中,
主要的任務就是初始化。
在intel的電腦中,分為real mode與protected mode
real mode有20位元Address Bus,因此,只有1M的定址能力
而在protected moe,有32bit 的Address Bus,則有4G的定址能力
所以,在定址方面就差的天差地遠。
當我們打開電腦時,
一開始BIOS是在real mode中,
一個位址是由段和偏移兩部分組成的,
是依循下列公式:
Physical Address=Segment*16+Offset
一個作業系統從開機到運行,大致經歷
"開機->載入核心入記憶體->跳入protected mode->開始執行核心"
因為這麼複雜的工作,我們不可能在只有512bytes的開機磁區完成,
因此我們必需另外寫一個程式boot loader,先把它載入到記憶體,再把控制權交給它,因為,它沒有512 bytes的限制,將會更靈活
boot loader必需有兩個主要的工作
1. 載入kernel 進入記憶體
2. 跳到protected mode
並且把控制權交給kernel
MBR->boot loader->kernel
而BIOS主要的工作就是初始化硬體,載入作業系統
今天聽同學說,即將有一個東西會取代BIOS
現在還沒有時間看,先留著,有空再來看
The Linux BIOS Project
BIOS - Wikipedia
看blog長知識
回覆刪除