系統開機BIOS為加載硬碟驅動為什么能讀取MBR呢?高手能幫忙解惑下,感謝!
uj5u.com熱心網友回復:
.讀取主引導記錄(MBR)。當BIOS檢查到硬體正常并與 CMOS 中的設定相符后,按照 CMOS 中對啟動設備的設定順序檢測可用的啟動設備。BIOS將相應啟動設備的第一個扇區(也就是MBR扇區)讀入記憶體地址為0000:7C00H 處。uj5u.com熱心網友回復:
加載MBR,那就是設備已經識別硬碟了,為什么還要加載硬碟的驅動呢?
uj5u.com熱心網友回復:
作業系統不認識啊uj5u.com熱心網友回復:
那鳥哥私房菜里說的更換硬碟型別影響開機流程是有問題嗎?uj5u.com熱心網友回復:
一般(非UEFI方式)系統啟動程序是按照 ,BIOS-> BootLoader(GRUB,LILO,uboot等)->KERNEL->initramfs->rootfs,這個流程進行的
BIOS,BootLoader,KERNEL,各個部分功能相對獨立,也就是說,同一個設備在BIOS中能用,Bootloader中如果沒有支持的代碼BootLoader就不能用,BootLoader和KERNEL也是同樣的關系,KERNEL之后的階段CPU都基本都處在非特權模式下利用KERNEL提供的系統介面運行程式
在BIOS自檢完成后讀取磁盤第一個扇區資料(包含啟動代碼和磁區表)到0:7c00H并跳轉執行到這個地址,然后由啟動代碼接管系統,啟動代碼很小,功能有限,一般負責繼續加載其他引導代碼、決議磁區表,查找支持啟動的系統磁區,加載系統KERNEL,按照配置引數啟動系統KERNEL,內核中存在預先編譯到內核的一些驅動程式,因此在內核初始化系統時,會逐步啟動這些驅動,當驅動初始化完成后,根據驅動支持的設備查找initramfs或rootfs,
如果查找不到,就會啟動失敗。
initramfs是為了避免編進kernel的驅動過多體積過大而引入的,它會處理一些驅動insmod作業完成一些在進入rootfs執行的準備作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/96067.html
標籤:驅動程序開發區
上一篇:為什么讀的SPI Flash的設備號為0XFF?收發使用兩個spi_ioc_transfer 也不行。謝謝了
下一篇:求助!MATLAB安裝報錯
