計算機開機主要做了兩件事:1、讀入作業系統並開始執行;2、初始化並記錄硬體引數。
一、進入並讀取引導扇區:
(1)、x86開機時cpu處於實模式(與保護模式對應,實模式的定址cs:ip,就是cs<<4+ip)。
(2)、開機時,cs=0xffff;ip=0x0000 硬體設計時決定。
(3)、得到定址0xfff0(rom bios對映區(basic in out system) )。
(4)、檢查ram,鍵盤,顯示器,磁碟等硬體
(5)、將磁碟0磁軌0扇區讀入0x7c00(引導扇區)
(6)、設定cs=0x07c0,ip=0x0000。定址至0x7c00,進入引導扇區執行。
二、在引導區的**是bootsect.s,執行其中的**:
(1)、設定cs=0x900,ip=0x0000處。
(2)、讀入0磁軌1,2,3,4扇區,即setup的4個扇區。同時顯示開機介面。
三、執行setup扇區中的**setup.s:
(1)、獲取記憶體和擴充套件記憶體的大小、游標位置、顯示卡引數、根裝置號;
(2)、把整個作業系統的的資料移到0x0000位址處
(3)、進入保護模式,初始化gdt表(就是乙個陣列,裡面是一些特定的位址,內容硬體規定),啟動32位定址方式,cs作為選擇子,是gdt表的下標,根據查詢gdt**的結果+ip作為定址的結果。
(4)、進入head.s。
四、執行head.s :
(1) main函式進棧
(2) 設定頁表。
(3) main函式執行,初始化滑鼠、鍵盤、記憶體使用情況……..
五、讀入os**到0位址,初始化重要的硬體引數
X86計算機系統的開機引導過程
一.了解一下x86的引導過程 由硬碟啟動時,bios通常是轉向第一塊硬碟最初的幾個扇區,即主引導記錄 512kb 裝載grub和作業系統的過程,包括以下幾個操作步驟 1.裝載主引導記錄 main boot record 主引導記錄由三個部分組成 主引導程式 446kb 四個分割槽表 各16kb 結束...
計算機是怎麼工作的?
試驗題目 計算機是怎麼樣工作的?實驗環境 ubuntu 9.10 實驗內容和步驟 在linux下c 經過預處理,編譯成彙編 彙編成目標 和鏈結成 elf可執行檔案,依次生成 cpp s o elf 檔案,下面通過 example.c 觀察其過程 1 預處理 gcc e o example.cpp e...
CPU是怎麼計算機 2 3的
假設x 2,y 3 x y 從cpu的角度,他是怎樣計算的呢 第1步 把2和3進行異或操作 得到結果 0001存放到某處 0010 0011 0001 第2步 再把2和3進行與操作 得到結果 0010 0010 0011 0010 再把0010左移1位得到0100,判斷移位後的結果是否為0,如果為為...