2010-11-01 21 views
4

我已經從osdev下載了幾個bootloader併成功加載了一個內核。但是現在我想學習bootloader背後的理論。我想知道爲什麼系統啓動以及引導加載程序代碼後面的所有內容。任何人都可以給我一個鏈接或鏈接到一本書?提前致謝。 系統是x86。Bootloader背後的理論

+0

維基百科有一個體面的開端:http://en.wikipedia.org/wiki/Booting – JOTN 2010-11-01 14:37:06

回答

1

https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

在附錄B,它給在第一段的簡短概述:

當一個x86 PC啓動時,它開始執行的程序調用的BIOS,其被存儲在非在主板上的易失存儲器。 BIOS的工作是準備硬件,然後將控制權交給操作系統。具體來說,它將控制權轉移到引導扇區(引導扇區的第一個512字節扇區)加載的代碼。引導扇區包含引導加載程序:將內核加載到內存中的指令。 BIOS在內存地址0x7c00加載啓動扇區,然後跳轉(將處理器的%ip)設置爲該地址。當引導加載程序開始執行時,處理器模擬Intel 8088,加載程序的工作是將處理器置於更現代的操作模式,將xv6內核從磁盤加載到內存中,然後將控制權交給內核。 xv6引導加載程序包含兩個源文件,一個是以16位和32位x86程序集(bootasm.S; (8900))和C(bootmain.c; ; (9000))的組合編寫的。