北航OS課程筆記--二、系統引導

qiuer0121發表於2024-07-25

這一章期末不考所以記得比較水(目移)

系統引導

系統引導:開機時,作業系統是如何執行起來的?

  1. CPU從一個特定主存地址開始取指令,執行ROM中的載入程式(Bootloader);先硬體自檢,再開機。
  2. 將磁碟的第一塊:主開機記錄(MBR)讀入記憶體,執行磁碟載入程式,掃描分割槽表
  3. 從活動分割槽(主分割槽,即安裝了作業系統的分割槽)讀入分割槽引導記錄PBR,執行其中的程式
  4. 從根目錄下找到完整的作業系統初始化程式並執行

Bootloader

引導載入程式是系統加電後執行的第一段軟體程式碼,稱為Bootloader,是在作業系統核心執行之前執行的一段小程式。MIPS處理器大多用於嵌入式系統,嵌入式系統常用U-boot作為OS啟動裝載程式。

嵌入式系統中硬體配置千差萬別,所以不可能有一個BootLoader支援所有CPU(作業系統不可完全移植)。

U-Boot啟動流程:

  • 分為stage1和stage2兩部分。
  • 依賴於CPU體系結構的程式碼,如裝置初始化程式碼等:放在stage1且可以用匯編語言來實現。
  • stage2:通常用C語言來實現,這樣可以實現複雜的功能,而且有更好地可讀性和移植性。

MIPS的基本地址空間

image-20240313110734872

  • kuseg: 使用者態可用的地址。在有MMU的機器裡,這些地址將一概被MMU作轉換。

    MMU:記憶體管理單元,一種硬體模組,用於在CPU和記憶體之間進行虛擬記憶體管理。主要功能是將虛擬地址轉換為實體地址。

  • kseg0:將最高位清零,就可以對映到實體地址段。稱為“非轉換”的地址區域;對這段地址的存取基本都會透過cache

    • 一個沒有MMU的系統會使用這段地址作為絕大多數程式和資料的存放位置
    • 有MMU的系統,作業系統核心會存放在這。
  • kseg1:將這些地址的高三位清零可對映到相應的實體地址上

    • kseg1是非cache存取的
    • kseg1是唯一在系統重啟時能正常工作的地址空間
  • kseg2:只能在核心態下使用,並要經過MMU的轉換。

載入BIOS

BIOS中包含了CPU的相關資訊、裝置啟動順序資訊、硬碟資訊、記憶體資訊、時鐘資訊、PnP特性等等。

讀取MBR

MBR:主開機記錄,存在於驅動器開始部分的一個特殊的啟動扇區。包含了已安裝的作業系統的啟動載入器(BootLeader)

相關文章