2008年6月17日 星期二

BIOS

在傳統的BIOS中,
主要的任務就是初始化。

在intel的電腦中,分為real modeprotected 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

1 則留言: