歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核(v0.11)-從開機加電執行到main函數前

Linux內核(v0.11)-從開機加電執行到main函數前

日期:2017/2/28 16:01:54   编辑:Linux內核

這一段時間分三步完成

1,啟動BIOS,准備實模式下的中斷向量表和中斷服務程序。

2,加載操作系統到內存。用步驟1中准備的中斷服務程序實現。

3,為執行main函數做過渡工作。

一,啟動BIOS

靠硬件方法來啟動BIOS,BIOS程序入口地址0xFFFF0。加電瞬間強行將CS的值置為0xFFFF,把IP的值強行置為0x0000,這樣CS:IP就指向0xFFFF0這地址。

二,加載操作系統到內存分三步

(1)加載引導程序bootsect(bootsect程序主要是規劃內存)。

給CPU一個0x19中斷,CPU查向量表做出反應,加載第一扇區的512B的bootsect到內存0x07C00。

(這裡涉及到BIOS和操作系統“兩頭約定,定位識別”慣例,有興趣讀者自查,俺不贅述。)

(2)加載setup代碼。

(3)加載system代碼。

三,開始向32位模式轉變,為main函數做准備。

此階段主要工作是,打開32位尋址空間,打開保護模式,建立保護模式下的中斷響應機制,建立內存分頁機制等。

Copyright © Linux教程網 All Rights Reserved