01 linux011 引導和保護模式的初始設定

2021-10-06 19:21:55 字數 1574 閱讀 5670

位於引導塊的引導程式由 bios 載入到實模式下的[0x7c00, 0x7e00)記憶體段,若檢查到引導程式最後兩個位元組為0xaa55則跳轉執行[0x7c00, 0x7e00)記憶體段的引導程式。引導程式的主要工作是將後續作業系統程式拷貝到記憶體中。

linux0.11 引導程式執行完畢後,記憶體分布大體如下。

0x00000|----------------------------------|

| 1kb ram |

| bios interrupt vector table etc. |

0x003ff|******************************====|

| ... |

0x10000|----------------------------------|

| os routines(system) |

0x40000|******************************====|

| ... |

0x90000|----------------------------------|← ss(0x9000)

| bootsect.s |

0x90200|******************************====|← cs:ip(0x9020:0)

| setup.s |

0x90a00|******************************====|

| ... |← sp(0xff00)

0x9ffff|******************************====|

| |

| 128k |

| video card ram addr space |

0xbffff|******************************====|

| |

| 256kb |

| bios rom addr space |

| |

| |

0xfffff|******************************====|

保護模式設定程式主要功能是通過bios中斷呼叫獲取一些作業系統程式要使用的系統引數並存於[0x90000, 0x90200)記憶體段中, 如實模式以外的記憶體大小、硬碟引數、顯示相關資訊等。隨後進行諸如gdt、中斷控制器、擴充套件記憶體的設定並進入保護模式機制下執行。

linux0 11 引導啟動程式目錄boot 分析

boot 包含三個彙編檔案 bootsect.s,setup.s,head.s。bootsect.s程式是磁碟引導塊程式,編譯後會駐留在磁碟的第乙個扇區中 引導扇區,0磁軌,0磁頭,第乙個扇區 在pc加電rom bios自檢後,將被bios載入到記憶體0x7c00處執行。setup.s程式主要用於讀...

Linux0 12引導啟動程式

1.從系統加電起所執行程式的順序 rom bios bootsect.s setup.s head.s main.c 其中,head.s和main.c都屬於system模組 main屬於初始化程式,這裡不講 2.幾個程式的比較 程式名位置 語言rom bios rombootsect.s boot ...

Linux0 12引導啟動程式

1.從系統加電起所執行程式的順序 rom bios bootsect.s setup.s head.s main.c 其中,head.s和main.c都屬於system模組 main屬於初始化程式,這裡不講 2.幾個程式的比較 程式名位置語言 rom bios rombootsect.s boot ...