從開機加電到執(zhí)行main函數(shù)之前的過程2019-11-10

從開機加電到執(zhí)行main函數(shù)之前的過程的目的是從啟動盤加載操作系統(tǒng)程序倦逐,完成執(zhí)行main函數(shù)所需要的準(zhǔn)備工作拗秘。

第一步:啟動BIOS,準(zhǔn)備實模式下的中斷向量表和中斷服務(wù)程序坦弟;

第二步:從啟動盤加載操作系統(tǒng)到內(nèi)存蹋辅,加載操作系統(tǒng)的工作就是利用第一步中準(zhǔn)備的中斷服務(wù)程序?qū)崿F(xiàn)的照筑;

第三步:為執(zhí)行32位的main函數(shù)做過渡工作胸私。

實模式:是Intel 80286和之后的80x86兼容CPU的操作模式厌处。

為了解決開始啟動問題,Intel 將所有的80x86系列的CPU硬件設(shè)計為加電即進入16位實模式狀態(tài)運行岁疼。

將CPU硬件邏輯的設(shè)計加電瞬間強行將CS的值置為0xF000阔涉、IP的值置為0xFFF0,這樣CS:IP就指向0xFFFF0這個地址位置。

0xFFFF0指向BIOS的地址范圍捷绒。

加載操作系統(tǒng)到內(nèi)存:

對于Linux0.11操作系統(tǒng)而言瑰排,計算機分三批逐次加載操作系統(tǒng)內(nèi)核代碼。

1暖侨、由BIOS中斷int 0x19把第一扇區(qū)bootsect的內(nèi)容加載到內(nèi)存椭住。

2、3字逗、在bootsect的指揮下京郑,分別把其后的4個扇區(qū)和隨后的240個扇區(qū)的內(nèi)容加載至內(nèi)存。

加載第一部分:引導(dǎo)程序葫掉。

加載第二部分:setup些举。

操作系統(tǒng)的設(shè)計者是要全面的、整體的考慮內(nèi)存的規(guī)劃的俭厚。

棧從高地址向低地址生長户魏。

加載第三部分:system模塊。

最后再次確定根設(shè)備。

系統(tǒng)通過已經(jīng)加載到內(nèi)存中的代碼之后叼丑,從實模式到保護模式资铡。

3、開始向32位模式轉(zhuǎn)變幢码,為main函數(shù)的調(diào)用做準(zhǔn)備笤休。

操作系統(tǒng)執(zhí)行操作有:打開32位的尋址空間、打開保護模式症副、建立保護模式下的中斷響應(yīng)機制等與保護模式配套的相關(guān)工作店雅、建立內(nèi)存的分頁機制、最后為做好調(diào)用main函數(shù)的準(zhǔn)備贞铣。

a.關(guān)中斷并將system移動到內(nèi)存地址起始位置0x00000闹啦。

16位中斷機制用的是中斷向量表,中斷向量表的起始位置在0x00000處辕坝,這個位置固定窍奋;

32位中斷機制用的是中斷描述符(IDT),位置不固定酱畅,可以由操作系統(tǒng)的設(shè)計者根據(jù)設(shè)計靈活安排琳袄,由IDTR來鎖定其位置。

在執(zhí)行main函數(shù)之前纺酸,先要執(zhí)行bootsect窖逗,setup,head餐蔬。之后才執(zhí)行由main函數(shù)開始的c語言編寫的操作系統(tǒng)內(nèi)核程序碎紊。

head程序建立目錄表,為分頁機制做準(zhǔn)備樊诺。

操作系統(tǒng)認(rèn)定0x0000這個位置就是頁目錄表的起始位置仗考。

圖片發(fā)自簡書App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市词爬,隨后出現(xiàn)的幾起案子秃嗜,更是在濱河造成了極大的恐慌,老刑警劉巖缸夹,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痪寻,死亡現(xiàn)場離奇詭異螺句,居然都是意外死亡虽惭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門蛇尚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芽唇,“玉大人,你說我怎么就攤上這事〈殷裕” “怎么了研侣?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炮捧。 經(jīng)常有香客問我庶诡,道長,這世上最難降的妖魔是什么咆课? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任末誓,我火速辦了婚禮,結(jié)果婚禮上书蚪,老公的妹妹穿的比我還像新娘喇澡。我一直安慰自己,他們只是感情好殊校,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布晴玖。 她就那樣靜靜地躺著,像睡著了一般为流。 火紅的嫁衣襯著肌膚如雪呕屎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天敬察,我揣著相機與錄音榨惰,去河邊找鬼。 笑死静汤,一個胖子當(dāng)著我的面吹牛琅催,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虫给,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼藤抡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抹估?” 一聲冷哼從身側(cè)響起缠黍,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎药蜻,沒想到半個月后瓷式,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡语泽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年贸典,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踱卵。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡廊驼,死狀恐怖据过,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妒挎,我是刑警寧澤绳锅,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站酝掩,受9級特大地震影響鳞芙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜期虾,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一积蜻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彻消,春花似錦竿拆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至煌贴,卻和暖如春御板,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牛郑。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工怠肋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人淹朋。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓笙各,卻偏偏與公主長得像,于是被迫代替她去往敵國和親础芍。 傳聞我的和親對象是個殘疾皇子杈抢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容