日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核bios,BIOS的启动原理——Linux内核设计学习笔记

發布時間:2025/3/8 linux 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核bios,BIOS的启动原理——Linux内核设计学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RAM:隨機存取存儲器,常見的內存條就是一類RAM,其特點是加電狀態下可任意讀、寫,斷電后信息消失。

在RAM中什么程序也沒有的時候,誰來完成加載軟盤中操作系統的任務呢?

答案是:BIOS。

BIOS的啟動原理

在了解BIOS是如何將操作系統程序加載到內存中之前,我們先來了解一下BIOS程序自身是如何啟動的。從我們使用計算機的經驗得知:要想執行一個程序,必須在窗口中雙擊它,或者在命令行界面中輸入相應的執行命令。從計算機底層機制上講,其實是在一個已經運行起來的操作系統的可視化界面或命令行界面中執行一個程序。但是,在開機加電的一瞬間,內存中什么程序也沒有,沒有任何程序在運行,不可能有操作系統,更不可能有操作系統的用戶界面。我們無法人為地執行BIOS程序,那么BIOS程序又是由誰來執行的呢?

秘訣是:0xFFFF0 !!!

從體系的角度看,不難得出這樣的結論:既然用軟件方法不可能執行BIOS,就只能靠硬件方法完成了。從硬件角度看,Intel 80x86系列的CPU可以分別在16位實模式和32位保護模式下運行。為了兼容,也為了解決最開始的啟動問題,Intel將所有80x86系列的CPU,包括最新型號的CPU的硬件都設計為加電即進入16位實模式狀態運行。同時,還有一點非常關鍵的是,將CPU硬件邏輯設計為加電瞬間強行將CS的值置為0xF000、IP的值置為0xFFF0,這樣CS:IP就指向0xFFFF0這個地址位置,如 1-1所示。從圖1-1中可以清楚地看到,0xFFFF0指向了BIOS的地址范圍。

圖1-1 啟動時BIOS在內存的狀態及初始執行位置

小貼士

IP/EIP(Instruction Pointer):指令指針寄存器,存在于CPU中,記錄將要執行的指令在代碼段內的偏移地址,和CS組合即為將要執行的指令的內存地址。實模式為絕對地址,指令指針為16位,即IP;保護模式下為線性地址,指令指針為32位,即EIP。

CS(Code Segment Register):代碼段寄存器,存在于CPU中,指向CPU當前執行代碼在內存中的區域(定義了存放代碼的存儲器的起始地址)。

注意,這是一個純硬件完成的動作!如果此時這個位置沒有可執行代碼,那么就什么也不用說了,計算機就此死機。反之,如果這個位置有可執行代碼,計算機將從這里的代碼開始,沿著后續程序一直執行下去。

BIOS程序的入口地址恰恰就是0xFFFF0 ! 也就是說,BIOS程序的第一條指令就設計在這個位置。

總結

以上是生活随笔為你收集整理的linux内核bios,BIOS的启动原理——Linux内核设计学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。