初學ucore操統筆記(1)

2021-06-21 09:43:20 字數 1935 閱讀 5491

1.bios啟動過程     

計算機加電時,不直接執行作業系統,而是執行系統初始化軟體完成基本io初始化和引導載入功能。

何為系統初始化軟體?它是在作業系統核心執行之前執行的一段小軟體。作用是(1)初始化硬體裝置;(2)建立系統的記憶體空間對映圖。達到將系統的軟硬體環境帶到乙個合適的狀態。最終引導引導程式把作業系統核心映像載入到ram中,並將系統控制權傳遞給他。

計算機啟動後,cpu一開始會到乙個特定的位址開始執行指令,這個特定的位址存放了系統初始化軟體。

以intel 80386為例子,pc機中的系統初始化軟體由bios和位於軟盤/硬碟引導扇區中的os boot loader一起組成。計算機加電後,cpu從實體地址起始處開始執行,但是此處只存了一條跳轉指令,通過該指令跳轉到bios例行程式起始點。bios完成計算機硬體自檢和初始化後,會選擇乙個啟動裝置,並且讀取該裝置的第一扇區(即主引導扇區或啟動扇區)到記憶體的乙個特定的位址處,然後cpu繼續執行,bios工作已經完成,下一步交給bootloader。

2.bootloader啟動過程

bootloader完成的工作包括:

(1)切換到保護模式,啟用分段機制

(2)讀磁碟中elf執行檔案格式的ucore作業系統到記憶體

(3)顯示字串資訊

(4)把控制權給ucore作業系統

2.1保護模式和分段機制

(1)實模式

在bootloader接受bios的工作後,pc系統出處於實模式執行狀態,這種狀態下軟體可訪問的物理記憶體空間不能超過1mb。

(2)保護模式

效能全開

(3)分段儲存管理機制

只有在保護模式下才能使用分段儲存管理機制。分段機制將記憶體劃分成以起始位址和長度限制這兩個二維引數表示的記憶體塊,這些記憶體塊稱之為段(segment)。

i)分段位址轉換:cpu把邏輯位址中的段選擇子的內容作為段描述符表的索引,找到表中對應的段描述符,然後把段描述符中儲存的段基址加上段偏移值,形成線性位址。如果不啟動分頁儲存管理機制,則線性位址等於實體地址。

(4)保護模式下的特權級

在保護模式下,特權級總共有4個,編號從0(最高特權)到3(最低特權)。有3種主要的資源受到保護:記憶體,i/o埠以及執行特殊機器指令的能力。

2.2.位址空間

(1)邏輯位址空間

從應用程式的角度看,邏輯位址空間就是應用程式設計師程式設計所用到的位址空間。

(2)實體地址空間

實體地址空間就是乙個「大陣列」,cpu通過索引(實體地址)來訪問這個「大陣列」中的內容。實體地址是指cpu提交到記憶體匯流排上用於訪問計算機記憶體和外設的最終位址。

(3)線性位址空間

一台計算機只有乙個實體地址空間,但在作業系統的管理下,每個程式設計師都認為自己獨佔整個計算機的實體地址空間。為了讓多個程式設計師能夠有效的相互隔離和使用實體地址空間,引入線性位址空間。

2.3.硬碟訪問概述

訪問bootloader並讓cpu進入保護模式後,下一步就是從硬碟中載入並執行os。為簡單,bootloader訪問硬碟都是lba模式的pio方式,即所有的io操作是通過cpu訪問硬碟的io位址暫存器完成。

3.作業系統啟動過程

當bootloader通過讀取硬碟扇區把ucore在系統載入到記憶體後,就跳轉到ucore作業系統在記憶體中的入口位置,這樣ucore就接管了整個控制權。

3.1函式堆疊

3.2中斷與異常

作業系統和cpu一起提供某種機制,讓外設在需要作業系統處理外設相關事件的時候,能夠「主動通知」作業系統,即打斷作業系統和應用的正常執行,讓作業系統完成外設的相關處理,然後再恢復作業系統和應用的正常執行。在作業系統中,這種機制稱為中斷機制。

在作業系統中,有三種特殊的中斷事件。由cpu外部裝置引起的外部事件如i/o中斷,時鐘中斷,控制台中斷等是非同步產生的(即產生的時間不確定);與cpu執行指令期間檢測到不正常的或非法的條件所引起的內部事件稱作同步中斷,也稱內部中斷,簡稱異常;把在程式中使用請求系統服務的系統呼叫而引發的事件,稱作陷入中斷,也稱軟中斷。

C 初學筆記1

1.c編譯器是把c 轉換成計算機內部指令的程式。2.c 在c語言的基礎上嫁接了物件導向程式設計工具。物件導向程式設計是一門哲學,它通過對語言建模來適應問題,而不是對問題建模以適應語言 c 幾乎是c的超集,這意味著任何c程式差不多就是乙個c 程式。3.include告訴編譯器把stdio.h中的內容包...

C 初學筆記(1)

建立c 程式的基本步驟 首先用文字編輯器編寫c 用編譯器對 進行編譯,將被轉換為包含在目標檔案中的機器語言。副檔名.obj 使用鏈結器鏈結編譯器的輸出,生成乙個可執行檔案。c 11 引入的新功能 auto 讓您能夠定義這樣的變數,即編譯器將自動推斷其型別,這簡化了變數宣告。警告與錯誤的不同之處在於,...

初學python 筆記1

高亮 程式設計的色彩輔助體系,根據不同含義,給予不同色彩標記 縮排 一行 開始前的空白區域,用來表示程式的格式框架 基本特徵 嚴格明確 縮排是語法的一部分,縮排不正確程式執行錯誤 所屬關係表達 間包合和層次方面的唯一手段 長度一致 注釋 用於提高 可讀性的輔助文字,不被執行 單行注釋 以 開頭,其後...