自己動手寫作業系統

2021-05-23 00:53:18 字數 875 閱讀 9821

今天看了前兩章,現將重點記錄如下:

作業系統的啟動,關鍵點時同bios的介面:

這裡有兩個位址很重要,

a,  0x7c00+510=0x7dfe登記標誌位(兩個byte):   0xaa55

b, 0x7c00,作業系統載入的目標位址

系統啟動過程

1 bios清零cpu現場: 傳送reset訊號

2 cpu從0xf ff f0處開始執行指令,該位址在系統的bios位址範圍內

ps: 大部分系統bios廠商在該位址放置的是一條跳轉指令

3 bios啟動**首先要post(power-on self test, 加點自檢)

此時出錯,只有機箱喇叭的發聲警報,因為還未初始化顯示卡。

4 初始化裝置:

顯示卡bios起始位址一般為0xc 00 00處,系統

bios自檢後呼叫該位址的**。

然後呼叫其他裝置的bios程式來進行相關初始化。

5 測試裝置

初始化後,系統bios顯示其自身的資訊,

然後是cpu測試,

然後是記憶體測試,

然後是標準硬體(硬碟,光碟機,串列埠,並口,軟碟機)的檢查與測試

然後是即插即用裝置的檢測,並為該裝置分配中斷,dma通道和i/o埠等資源

6 更新escd

extended system configuration data, 是系統bios用於同作業系統交換硬體配置資訊的一種手段。

這些資料一般存於cmos中。

7 啟動作業系統

將啟動裝置(光碟,軟盤,硬碟)的第乙個山區讀入記憶體,並檢查0x7dfe位址,如果其值為0xaa55,

則跳轉到0x7c00處執行mbr(master boot record),mbr再負責裝載作業系統。

自己動手寫作業系統

virtual pc 5.2 下 dos7.1 中 執行.com檔案相關問題 2009 09 09 12 55 剛才在進入dos後,編譯.asm檔案獲得.com檔案,但系統會出現 emm386 unrecoverable privileged operation error n9.press ent...

自己動手寫作業系統

2 自己動手寫作業系統 3自己動手寫作業系統 如何呼叫bios中斷 在一般的程式語言中,函式的呼叫是一件非常容易的事情。比如在c語言中,如果有乙個名為display的程式,它帶有兩個引數,其中引數 noofchar表示顯示的字元數,引數attr表示顯示字元的屬性。那麼要呼叫它,只需給出程式的名稱即可...

自己動手寫作業系統 二

上一期,我講述了如何在軟盤的啟動扇區寫一些 然後再從軟盤啟動的過程。製作好乙個啟動扇區,在切換到保護模式之前,我們還應該知道如何使用bios中斷。bios中斷是一些由bios提供的 為了使作業系統的建立更容易的低階程式。在本文中,我們將學習處理bios的中斷。為什麼要用bios bios會把啟動扇區...