作業系統的啟動HEU

2022-12-04 19:18:02 字數 2619 閱讀 5177

作業系統

實驗報告

哈爾濱工程大學

電腦科學與技術學院

一、實驗概述

1. 實驗名稱

作業系統的啟動

2. 實驗目的

a.跟蹤除錯eos在pc機上從加電復位到成功啟動的全過程,了解作業系統的啟動過程。

b.檢視eos啟動後的狀態和行為,理解作業系統啟動後的工作方式。

3. 實驗型別

驗證型實驗

4. 實驗內容

4.1.準備實驗

4.1.1. 啟動os lab。

4.1.2. 新建乙個eos kernel專案。

4.1.3.

在「專案管理器」視窗中開啟boot資料夾中的和兩個彙編檔案。是軟盤引導扇區程式的原始檔,是loader程式的原始檔。簡單閱讀一下這兩個檔案中的nasm彙編**和注釋。

4.1.4. 按f7生成專案。

4.1.5.

生成完成後,使用windows資源管理器開啟專案資料夾中的debug資料夾。找到由生成的軟盤引導扇區程式檔案,該檔案的大小一定為節(與軟盤引導扇區的大小一致)。找到由生成的loader程式檔案,記錄下此檔案的大小節,在下面的實驗中會用到。

找到由其它原始檔生成的作業系統核心檔案

4.2. 除錯eos作業系統的啟動過程

4.2.1. 使用bochs做為遠端目標機

按照下面的步驟將除錯時使用的遠端目標機修改為bochs:

1. 在「專案管理器」視窗中,右鍵點選專案節點,在彈出的快捷選單中選擇「屬性」。

2. 在彈出的「屬性頁」對話方塊右側的屬性列表中找到「遠端目標機」屬性,將此屬性值修改為「bochs debug」(此時按f1可以獲得關於此屬性的幫助)。

3. 點選「確定」按鈕關閉「屬性頁」對話方塊。接下來就可以使用bochs模擬器除錯bios程式和軟盤引導扇區程式了。

4.2.2 除錯bios程式

按f5啟動除錯,此時會彈出兩個bochs視窗。標題為「bochs for windows - display」的視窗相當於計算機的顯示器,顯示作業系統的輸出。標題為「bochs for windows - console」的視窗是bochs的控制台,用來輸入除錯命令,輸出各種除錯資訊。

4.2.3除錯軟盤引導扇區程式

bios在執行完自檢和初始化工作後,會將軟盤引導扇區載入到實體地址0x7c00-0x7dff位置,並從0x7c00處的指令開始執行引導程式

4.2.4除錯引導程式

loader程式的主要任務是將作業系統核心(檔案)載入到記憶體中,然後讓cpu進入保護模式並且啟用分頁機制,最後進入作業系統核心開始執行(跳轉到的入口點執行)。

4.2.5除錯核心

4.2.6 eos啟動後的狀態和行

a.檢視eos的版本號:

b.檢視eos啟動後的程序和執行緒的資訊:

c.檢視有應用程式執行時程序和執行緒的資訊:

二、實驗環境

整合實驗環境os lab

三、實驗過程

1.需要解決的問題及解答

問題一:除錯軟盤引導扇區程式

(1)、自己設計兩個檢視記憶體的除錯命令,分別驗證這兩個使用者可用區域的高位址端也是空白的。

軟盤引導扇區被載入後的記憶體

由圖可知:使用者一的末端位址是0x0000:0x7c00因為呼叫命令是512個位元組,想要讀取使用者可用的區域的高階位置,則向前推進512個位元組,換算成16進製制數是0x0200,則查詢的命令應該是:

xp/512b 0x7a00.同理,使用者可用區域二的高階位置查詢命令應該是:xp/512b 0x9fe00

如下圖所示:

結果說明:使用者區域高位址端是空白的,驗證得結論正確。

(2)、自己設計乙個檢視記憶體的除錯命令,驗證上位記憶體的高位址端已經被系統占用。

由**的,記憶體的高位址端位於0x100000之前,則減去節是0xffe00,則命令是:xp/512b 0xffe00,結果如下圖所示:

驗證得與結論一致。

(3)、根據之前記錄的檔案的大小,自己設計乙個檢視記憶體的除錯命令,檢視記憶體中loader程式結束位置的位元組碼,並與檔案中最後指令的位元組碼比較,驗證loader程式被完全載入到了正確的位置。

根據之前記錄的檔案大小為節,換算成16進製制大小表示為0x061e而由之前檢視的結果可知檔案的起始位置是0x1000,則可計算得末端位置是0x161e,由於需要查詢最後8位元組的內容以進行比較,可得查詢位置應是:0x1616,則命令列輸入為:xp/8b 0x1616驗證結果如下圖所示:

通過比較得93ffffff c9c20400是檔案最後的**,驗證結果正確。

問題二:eos啟動後的狀態和行為,檢視有應用程式執行時程序和執行緒的資訊

仔細比較下列兩幅**,嘗試說明哪個是應用程式的程序,它和系統程序有什麼區別,哪個是應用程式的主線程,它和系統執行緒有什麼區別。

第一幅圖(未載入

第二幅圖(已載入

通過比較可知:

1.應用程式的程序是id為52的程序,他與系統程序的區別是:他的優先順序為8,含有1個程序。

2.應用程式的主線程是id為54的程序,他與系統執行緒的區別是:他只有乙個程序,不包含主線程和控制台排遣執行緒,也沒有控制台執行緒他的優先順序也是8.

4、實驗體會

通過本次實驗,知道了如何跟蹤除錯eos在pc機上從加電復位到成功啟動的全過程,也了解作業系統的啟動過程,以及如何檢視eos啟動後的狀態和行為,也加深理解作業系統啟動後的工作方式。

作業系統的啟動

實驗報告 哈爾濱工程大學 電腦科學與技術學院 一 實驗概述 1.實驗名稱 2.實驗目的 1 跟蹤除錯 eos 在 pc 機上從加電復位到成功啟動的全過程,了解作業系統的啟動過程。2 檢視eos啟動後的狀態和行為,理解作業系統啟動後的工作方式。3.實驗型別 驗證4.實驗內容 1 準備實驗 啟動os l...

拖慢作業系統啟動的真實原因

大家都希望電腦一開機就可以立即進入windows系統而不用等待,但由於種種原因常常未能如願,甚至一開機就宕機的情況也時有發生。其實有些時候windows啟動速度緩慢並不是它本身的問題,而是一些裝置或軟體造成的,看看下面拖慢系統啟動的8個原因,再查一查你的電腦是不是也存在類似問題!1 usb硬碟和掃瞄...

簡單的作業系統

系統組成 1 boll 2 頻寬 3 極限 4 mfi 5 vol。用法 01 boll大概能包含70 以上的交易資訊,對很多人作出交易的判斷,足夠了。02 股價大部分情況下都行進在boll裡。在boll裡,很容易判斷出k的形態。03 超出boll帶的狀況為極端狀況,為加速漲或加速跌。04 上破一般...