計算機啟動過程理解雜記

2021-09-26 10:06:57 字數 869 閱讀 2711

純屬個人理解,如有錯誤,請多包涵。

最近在學網易雲課堂——linux作業系統, 構建自己的核心

裡面講解到,計算機啟動以後,bios會首先執行起來,然後bios會去磁碟的啟動扇區讀取資料,判斷是否是引導程式(是否以55aa結尾),如果是引導程式,則載入進記憶體執行,引導程式會進一步載入整個作業系統。

對這個過程中產生了很多疑惑。

按照以前的理解,所有的程式要執行,都必須先載入到記憶體中才能執行,那bios是怎麼載入到記憶體中的呢?

貌似計算機一啟動,bios中的程式就可以執行了?

查詢了一些資料,我理解是這樣子的:

cpu有固化的指令,啟動後讀取的第乙個實體地址是固定的。

主機板bios對映到位址空間的位址也是確定的。

也就是說,計算機啟動以後,cpu讀取固定的位址***,這個位址通過位址匯流排,訪問到的就是bios程式所在的位置。

換名話說,cpu可以直接通過匯流排訪問bios。

這是不理解的地方,之前一直理解所有的位址都是給記憶體使用的。但是實際上,不僅主機板bios,還有網絡卡,顯示的bios,都會對映到cpu的位址空間裡面來,cpu可以直接通過匯流排訪問這些儲存空間。

具體的機制還有待學習了解。

參考:

開機後的第一條指令

從開啟電源到開機作業系統啟動的全過程

bios 與 cpu關係

bios載入磁碟的第乙個扇區,並判斷這個扇區是不是啟動扇區,那麼問題來了,bios為什麼可以直接訪問磁碟,訪問磁碟不需要驅動嗎?

沒找到答案,留疑。

參考:

為什麼顯示卡、音效卡甚至滑鼠鍵盤有驅動,而cpu、記憶體沒有驅動?驅動程式又是什麼?

計算機啟動過程

計算機按下開機按鍵到啟動到作業系統的過程中,計算機到底經歷了哪些步驟呢 1 按下power bottom之後,計算機會經過一系列的上電過程 power squence 最後然讓cpu reset.cpu reset 表示主機板電已經上好了並且cpu開始工作 2 cpu開始工作時候緊接著就通過sb或者...

計算機啟動過程

從開啟電源到開始操作,計算機的啟動是乙個非常複雜的過程。我一直搞不清楚,這個過程到底是怎麼回事,只看見螢幕快速滾動各種提示.這幾天,我查了一些資料,試圖搞懂它。下面就是我整理的筆記。零 boot的含義 先問乙個問題,啟動 用英語怎麼說?回答是boot。可是,boot原來的意思是靴子,啟動 與靴子有什...

計算機啟動過程

對intel8086加電或復位的時候,cs 0xffff,ip 0x0000,處理機執行指令的時候是從低位址到高位址,這個位址距離記憶體頂部0xfffff,只差16個位元組,要是ip值超過0x000f,它與cs形成的實體地址就會因為溢位,而變回0x0001 所以在這個位址 cs 0xffff,ip ...