作業系統第一課 BIOS

2021-08-28 03:36:19 字數 946 閱讀 7617

在剛開始啟動電腦的時候,並不是從記憶體中定址啟動程式,而是通過啟動bios實現計算機的開機。bios相當於乙個flush,儲存著開機用到的所有程式。開機狀態是實模式的,實模式的特性是乙個20位的儲存器位址空間。即1m的儲存器可以被定址,可以直接軟體訪問bios以及周邊的硬體,沒有硬體支援的分頁機制和實時多工的概念。

在加電的一瞬間,計算機的記憶體準確說是ram中什麼程式也沒有,不能直接執行作業系統。(ram隨機訪問儲存器,在加電狀態時可以任意讀寫,在斷電之後資訊消失。)

北橋晶元:這種晶元又叫做memory controller hub晶元

2.用於儲存器的控制

南橋晶元:這種晶元又叫做i/o controller hub。

1.主要是用於管理低速或者是中速的元件,比如pci匯流排、usb介面、ide硬碟介面

bios相當於唯讀的快閃儲存器晶元,並不是直接掛載在cpu上面的。而是在南橋上掛載。因此在開機後,cpu通過ip對映找到bios的位置,執行內部的程式。(cpu的硬體被設計為加電立即進入16位實模式狀態進行。同時將cpu的硬體邏輯設計為加電瞬間強行設定cs位置為0xf000,同時ip為0xfff0,這樣實際位址cs:ip為0xffff0【其中實際位址=16位的段基位址*16+16位的偏移量】),該位置指向的是bios的位址範圍。

ip/eip:指令指標暫存器,表示的是指令在段中的偏移位址。實模式為絕對位址,指令指標為16位即ip;在保護模式下,指令指標為32位即eip。

cs:**段暫存器。存在於cpu中,指向cpu當前執行**在記憶體中的區域。

bios在記憶體最開始的位置0x00000用1kb的記憶體儲存中斷向量表0x00000-0x003ff,之後利用256位元組構建bios的資料區0x00400-0x004ff,之後在57kb以後的位置0x0e05b載入8kb左右的與中斷向量表相對應的中斷向量程式。中斷向量表中含有256個中斷向量,每個中斷向量包含4個位元組,其中兩個表示cs,另外兩個表示ip。每個中斷向量對應乙個中斷服務程式。

開學第一課

因為是開學第一課,而且這是我的第一篇個人部落格,更何況還是技術部落格,所以我會認真對待,不過畢竟第一次,所以難免各方面會有不足,所以有任何的意見或建議都可以提出來以供本人提高。下面廢話少說,進入正題。使用quartus,新建乙個專案,建立乙個bdf檔案,雙擊bdf空白處,新增元件符號。找到 7413...

鋼琴第一課

哇 昨天去上了第一節鋼琴課,好開心好開心 核心要義 感覺自己像個小公主 儀態儀容 屁股只能坐一半 身體保持正直 手非常溫柔非常輕鬆地搭到琴鍵上 胳膊肘整個過程保持不動 兩手手腕微微向內旋轉,盡量讓手背與琴鍵平行,中空狀。落下時,呈自由落體狀,每個手指放到該放的琴鍵上。一首曲目彈奏完畢,手,輕輕地溫柔...

第一課 變數

一 變數 一 變數命名 1 使用具有固定意義的英文單詞或縮寫,如srv server,skt socket 2 駝峰命名法 1 大駝峰 myfirstlove,intoone,用大駝峰給類命名 2 小駝峰 myfirstlove,intoone,其他變數和函式的命名 3 posix my first...