文章目錄
操作系統啓動過程
BIOS和主引導記錄MBR
實模式和保護模式
實模式(實地址模式,REAL MODE)
- 程序按照8086尋址方法訪問0h–FFFFFh(1MB:1024*1024=2^20)空間
- 尋址方式:物理地址(20位)=段地址(16位):偏移地址(16位)
- CPU單任務運行
保護模式(內存保護模式,PROTECT MODE)
- 尋址方式:段(32位)和偏移量(32位),尋址4GB空間
- 段的屬性:起始地址,存取屬性,權限級別,…
- 段頁式尋址機制(段、頁)
- 虛擬地址、進程、封閉空間
- 應用程序和操作系統的運行環境都被保護(保護的對象是內存)
- CPU支持多任務
系統BIOS
Basic I/O System。bios既不屬於硬件也不屬於軟件,而是Firmware固件。
固件是以硬件的方式存在,但內部是軟件。
- 基本輸入/輸出系統
- 位置 F0000~FFFFF 最後的64k
Bios功能:
- 系統啓動配置
- 基本的設備I/O服務
- 系統的加電自檢和啓動
bios的I/O服務用中斷的方式來實現。
CS:IP初始化就是FFFF0指令。這是一條跳轉指令JUMP POST:POST位於系統BIOS內部。
bios讀硬盤的時候,先讀首扇區MBR。這個啓動記錄512個字節。最後兩個字節一定是0xAA55h。
操作系統啓動過程
啓動過程
從加電到用戶工作環境準備好的過程
- (1)初始引導
- (2)核心初始化
- (3)系統初始化
初始引導的目的:
-
把操作系統的核心裝入內存並使之開始工作接管計算機系統
過程: -
加電,JUMP POST
-
…BIOS中的啓動程序運行
-
啓動程序:
- 讀取0面0道第1扇區內容(MBR)
- 加載MBR中的引導程序
-
引導程序:
- 根據相關參數,讀取硬盤指定位置的文件到內存
- 加載硬盤上的操作系統內核,並初始化基本參數
常見的引導程序:
(1)ntldr
(2)GRUB
(3) bootmgr
(4)LILO
核心初始化
- 目的:OS內核初始化系統的核心數據
- 典型工作:
- 各種寄存器的初始化
- 存儲系統和頁表初始化
- 核心進程構建
- …
系統初始化
- 爲用戶使用系統做準備,使系統處於待命狀態
- 主要工作:
- 初始化文件系統
- 初始化網絡系統
- 初始化控制檯
- 初始化圖形界面
- …
操作系統的生成
- 滿足特定硬件環境和用戶需要,組裝和構建操作系統過程。
操作系統生成的主要步驟
- 根據硬件環境/用戶要求配置功能模塊和構造參數
- 構建(build)OS的影像
操作系統生成的前提
- 操作系統由可拆裝的模塊構成
- 有交互式配置工具
- 有映像構建(build)工具
操作系統的生成
title指示提示信息
root表示啓動設備、路徑
kernel啓動映像文件根目錄
操作系統用戶界面
用戶shell腳本編程
系統調用
系統調用的特點:
- 一般涉及核心資源或硬件的操作
- 運行於核態
- 每一個系統調用具有唯一的編號:ID
- 調用過程中會產生中斷,自願中斷
先用AH來接收用戶指定的系統調用號,然後用INT 21H進行自願中斷
printf和exit都會引發中斷(隱式的)