回覆列表
  • 1 # 使用者6292773564865

    按照傳統BIOS的啟動方式來說一下吧,不討論UEFI了。開機CPU處於16位的真實模式,這個模式沒有許可權的概念,所有東西都是Ring0。MBR(磁碟引導扇區裡的程式碼)就是在這個模式下執行的。MBR的作用是載入PBR(分割槽的引導扇區的程式碼)或BootLoader(比如GRUB)PBR的作用是載入BootLoader(比如Windows2000/XP/2003的ntldr和Windows Vista/2008/7/2008R2/8/2012/8.1/2012R2/10/2016的bootmgr)PBR跟MBR一樣,也是在真實模式下執行的,那個模式只有RING 0。BootLoader啟動的時候也是真實模式,BootLoader在記憶體裡建立轉換到32位保護模式/64位長模式需要的各種資料結構,然後把CPU轉換到32位/64位模式,並跳轉到BootLoader的32位/64位的部分,跳轉時指定許可權RING 0。這部分程式碼載入各種核心的東西,初始化作業系統核心。然後核心載入使用者態的東西,呼叫的時候(怎麼呼叫的不記得了)指定許可權RING 3(CPU有個標誌位來判斷當前是RING幾),於是被呼叫的東西只能執行一部分指令。使用者態的東西要呼叫系統的東西,透過Fast Fail/Sys Call之類的我記不清了的東西跳轉到一個RING 0的狀態下,然後呼叫系統的執行在RING 0模式的程式碼。-----好像傳說中Windows沒有使用RING1和RING2?

  • 中秋節和大豐收的關聯?
  • kd12跟哈登2哪個透氣好?