這一章期末不考所以記得比較水(目移)
系統引導
系統引導:開機時,作業系統是如何執行起來的?
- CPU從一個特定主存地址開始取指令,執行ROM中的載入程式(Bootloader);先硬體自檢,再開機。
- 將磁碟的第一塊:主開機記錄(MBR)讀入記憶體,執行磁碟載入程式,掃描分割槽表
- 從活動分割槽(主分割槽,即安裝了作業系統的分割槽)讀入分割槽引導記錄PBR,執行其中的程式
- 從根目錄下找到完整的作業系統初始化程式並執行
Bootloader
引導載入程式是系統加電後執行的第一段軟體程式碼,稱為Bootloader,是在作業系統核心執行之前執行的一段小程式。MIPS處理器大多用於嵌入式系統,嵌入式系統常用U-boot作為OS啟動裝載程式。
嵌入式系統中硬體配置千差萬別,所以不可能有一個BootLoader支援所有CPU(作業系統不可完全移植)。
U-Boot啟動流程:
- 分為stage1和stage2兩部分。
- 依賴於CPU體系結構的程式碼,如裝置初始化程式碼等:放在stage1且可以用匯編語言來實現。
- stage2:通常用C語言來實現,這樣可以實現複雜的功能,而且有更好地可讀性和移植性。
MIPS的基本地址空間
-
kuseg: 使用者態可用的地址。在有MMU的機器裡,這些地址將一概被MMU作轉換。
MMU:記憶體管理單元,一種硬體模組,用於在CPU和記憶體之間進行虛擬記憶體管理。主要功能是將虛擬地址轉換為實體地址。
-
kseg0:將最高位清零,就可以對映到實體地址段。稱為“非轉換”的地址區域;對這段地址的存取基本都會透過cache
- 一個沒有MMU的系統會使用這段地址作為絕大多數程式和資料的存放位置
- 有MMU的系統,作業系統核心會存放在這。
-
kseg1:將這些地址的高三位清零可對映到相應的實體地址上
- kseg1是非cache存取的
- kseg1是唯一在系統重啟時能正常工作的地址空間
-
kseg2:只能在核心態下使用,並要經過MMU的轉換。
載入BIOS
BIOS中包含了CPU的相關資訊、裝置啟動順序資訊、硬碟資訊、記憶體資訊、時鐘資訊、PnP特性等等。
讀取MBR
MBR:主開機記錄,存在於驅動器開始部分的一個特殊的啟動扇區。包含了已安裝的作業系統的啟動載入器(BootLeader)