計算機是如何啓動的

一.啓動入口

任何啓動程序或者系統都有啓動入口。那麼計算機的啓動入口是什麼呢html

1.1 CS:IP

CS寄存器: 代碼段寄存器
IP寄存器:指令指針寄存器
在實模式下,內存地址爲:CS * 16 + IP,例如CS:0xF000和IP:0xFFF0,計算得出內存地址爲0xFFFF0。
而CPU將CS:IP地址指向的內容當作指令執行。ios

1.2 啓動入口地址

因爲尚未啓動,確定不是由軟件操做,而是由硬件操做的。首先將CS寄存器置爲0xF000,IP寄存器置爲0xFFF0。因此CPU第一條執行的指令地址是0xFFFF0操作系統

1.3 0xFFFF0是什麼地址

0xFFFF0指向BIOS的入口地址,此地址所指向的內容也是一條執行jmp f000:e05b指針

二.啓動順序

啓動順序

2.1 設置啓動入口地址

設置啓動入口地址CS:IP 爲0xF000:0xFFF0htm

2.1 執行BIOS

BIOS是Bbase Input Output System的縮寫,基本輸入輸出系統。blog

BIOS是一個ROM(只讀存儲器),容量較小,只能作少部分工做,不可能完成全部的啓動任務。


因此BIOS只完成了下面幾項工做:ip

  • POST(Power-On Self-Test):硬件自檢

檢查計算機硬件是否知足運行基本條件,若是出現問題,主板會發出不一樣含義的報警。若是沒有問題,則繼續啓動。並創建中斷向量表等等內存

  • 檢驗和加載啓動盤位於0盤0道1扇區的內容到內存0x7c00處get

    加載的內容就是MBR引導程序,至於爲何在0盤0道1扇區,就是約定的。博客

  • 最後跳轉到0x7c00處,jmp 0:0x7c00

2.2 MBR主引導記錄

BIOS按照啓動順序,把控制權轉交給MBR.MBR是Main/Master Boot Record的縮寫,主引導記錄。共512字節。


主引導記錄結構:

  • 1-446字節: 調用操做系統的機器碼
  • 447-510字節: 分區表
  • 511-512: 主引導記錄標記(0x55和0xAA),若是此扇區末尾兩個字節是0x55和0xAA,則表示是MBR主引導記錄

分區:

好比咱們普通的電腦都分爲C D E F等幾個盤,到底哪一個是啓動盤,主引導記錄將控制權轉交給哪一個盤,也就是哪一個分區

  • 第1個字節:若是爲0x80,就表示該主分區是激活分區,控制權要轉交給這個分區
  • 第2-4個字節:主分區第一個扇區的物理位置(柱面、磁頭、扇區號等等)
  • 第5個字節:主分區類型
  • 第6-8個字節:主分區最後一個扇區的物理位置
  • 第9-12字節:該主分區第一個扇區的邏輯地址
  • 第13-16字節:主分區的扇區總數

MBR應該將控制權轉交給系統加載器,MBR所作的工做

  • 讀取每一個分區的開始位置,判斷是不是0x80,若是是0x80,則是激活分區
  • 將控制權交給OBR

2.3 OBR 系統引導記錄

OBR是OS Boot Record的縮寫,系統引導記錄,也就是所謂的次引導記錄,就是操做系統的起始位置。而後後面就把控制權交給操做系統了。

OBR所作工做

  • 加載操做系統到內存的某個位置
  • 而後跳轉到操做系統內存位置開始執行,啓動系統

三.幾個概念

  • MBR:Main /Master Boot Record的縮寫,是主引導記錄
  • BIOS: Base Input Output System,基本輸入輸出系統
  • EBT: Extend Boot Record,擴展引導記錄
  • OBR: OS Boot Record,操做系統引導程序

參考:
【1】阮老師博客

相關文章
相關標籤/搜索