BIOS
http://forum-en.msi.com/faq/article/what-is-the-bios-and-what-does-it-do
CMOS
post -- beep and display
active other BIOSs
interrupt
configuration
booting and address
booting process and address
and
grub
BIOS -- bootloader
0x7C00 (x86) -- OS
地址FFFF0H在PC中有特別的用途。系統在啟動時,CS=F000H,IP=FFF0H,即從地址FFFF0H處開始執行,這個地區屬於系統BIOS。(F000:FFF0)=EA5BE000F0(是JMP F000:E05B指令的十六進位表示),它立即跳轉到BIOS的初始化程式,開始系統的啟動過程。
對於很多人來講0x7C00這個地址是很神秘的,不知道這是幹什麼的。但是對於瞭解過x86平台下BIOS啟動過程的人,對這個地址再熟悉不過了。BIOS就是將MBR讀入0x7C00地址,然後進行後續的引導的。作業系統或是bootloader開發人員必須假設
他們的彙編代碼被載入並從0x7C00處開始執行。0x7C00的定義對於這個地址,它不屬於Intel x86平台規範的,而是屬於BIOS規範中定義的內容。
+——————— 0×0| Interrupts vectors(中斷向量表)
+——————— 0×400| BIOS data area(BIOS的資料區域)
+——————— 0×5??| OS load area(作業系統載入地區)
+——————— 0x7C00| Boot sector(引導地區)
+——————— 0x7E00| Boot data/stack(引導資料/堆棧)
+——————— 0x7FFF| (not used)+——————— (…)
BIOS將磁碟的第一個扇區(磁碟最開始的512位元組)載入記憶體,放在0x0000:0x7c00處(見圖三),如果這個扇區的最後兩個位元組是“55 AA”,那麼這就是一個開機磁區,這個磁碟也就是一塊可引導盤。通常這個大小為512B的程式就稱為引導程式(boot)。如果最後兩個位元組不是“55
AA”,那麼BIOS就檢查下一個磁碟機。
通過上面的表述我們可以總結出如下三點引導程式所具有的特點:
1. 它的大小是512B,不能多一位元組也不能少一位元組,因為BIOS唯讀512B到記憶體中去。
2. 它的結尾兩位元組必須是“55 AA”,這是開機磁區的標誌。
3. 它總是放在磁碟的第一個扇區上(0磁頭,0磁軌,1扇區),因為BIOS唯讀第一個扇區。
作業系統引導探究
http://blog.csdn.net/daiyutage/article/details/8895895
UEFI
http://blog.csdn.net/u011643458/article/details/9853595
我所認知的BIOS
http://blog.csdn.net/lightseed/article/category/547391