orange s學習 第十一章 如何從硬碟引導

2021-10-02 14:27:48 字數 632 閱讀 3699

我們先回憶一下從軟盤啟動的過程:

1.  bios將引導扇區讀入記憶體 0000:7c00處;

2.  跳轉到 0000:7c00處開始執行引導**;

3.  引導**從軟盤中找到loader.bin,並將其讀入記憶體(按照fat12檔案系統查詢檔案);

4.  跳轉到loader.bin開始執行;

5.  loader.bin從軟盤中找到kernel.bin,並將其讀入記憶體(按照fat12檔案系統查詢檔案,並且按照elf格式移動kernel.bin檔案);

6.  跳轉到kernel.bin開始執行,到此可認為啟動過程結束;

7.  系統執行中。

在第1步中,bios到底讀軟盤還是硬碟是由cmos設定決定的,通常你可以找到乙個叫做「boot  sequence」的選項,從中選擇首選啟動裝置。在第3步和第5步中,對於軟盤啟動,**將在軟盤中尋找loader.bin和kernel.bin,對於硬碟啟動,我們需要讓引導扇區**從硬碟中尋找loader.bin並讓loader從硬碟中尋找kernel.bin。這便是軟盤和硬碟啟動的區別了。剩下的幾步中,軟盤和硬碟啟動沒有分別。

因此我們需要重寫boot.asm和loader.asm,讓它們讀取硬碟而不是軟盤。新的檔案我們起名為hdboot.asm和hdldr.asm。

modern c design 第十一章

本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...

第十一章3

第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...

java第十一章

問題 1 錯誤 2 異常,1 編譯時異常 檢查異常 2 執行時異常 不檢查異常 是否能用 解決,是的就是異常,不是的就是錯誤 問題 1 先驗 2 捕獲 異常捕獲機智 異常的三個種類 1 檢查異常 2 執行時異常 3 錯誤 throw 提示方法呼叫者本方法可能發生異常 throw跟異常物件 throw...