OS 2 系統呼叫

2021-10-09 07:28:24 字數 757 閱讀 8698

介面:連線兩個東西、訊號轉好、遮蔽細節。

作業系統介面:即系統呼叫。

系統呼叫的實現

由於作業系統核心中含有一些重要的資料,以及一些可能會對整個系統造成影響的系統呼叫。所以為了防止使用者無意或者惡意呼叫一些函式而導致系統崩潰。os使用了一種硬體設計(電路)將記憶體劃分為核心態和使用者態。核心態可以訪問記憶體中的所有資料,而使用者態的只能訪問使用者態的資料,要想使用核心態的資料需要使用系統呼叫。在os啟動時,執行head.s**時,就會為os的system部分的**生成gdt表項,同時設定dpl為0,表示該**段為核心態的**。

使用者程式啟動時,os會將使用者程式的cpl為3,當cpl≥dpl時,**是無法訪問核心態的。所以,當我們使用系統呼叫的時候會將dpl(使用者**的dpl)變為3,這樣就能訪問到核心態的位址了。dpl表示目標記憶體段的特權級,cpl表示當前記憶體段的特權級(數字越小,特權級越大,當cpl≤dpl時,使用者態的**才能訪問核心態的記憶體)

設定dpl為3,cpl≤dpl,然後執行int指令中斷來進入到核心態,此時核心態的**的dpl為0,所以使用者想要執行需要將cpl置為0,。而int指令就是將cs中的cpl改為0,進入核心。

系統呼叫的過程:

使用者程式中包含int指令,os提供對應的中斷處理程式,執行對應的中斷處理程式。(int 指令後面還會有對應的中斷編號存放到eax暫存器,通過查詢編號,找到中斷處理程式)

python 呼叫系統命令os

一 獲取環境變數 import os env dist os.environ 列印所有環境變數,遍歷字典 for key in env dist print key env dist key 二 os.system cmd 與os.popen cmd 的區別 os.system cmd 返回結果為0...

OS 系統呼叫的認識

os 系統呼叫 使用者介面 命令介面 聯機命令介面 離線命令介面 程式介面 程式介面是由一組系統呼叫組成的 介面是 用程式呼叫的特殊函式生活場景 我們去列印店列印 時,在電腦按下列印鍵時,印表機開始工作,這時候,又來了幾位同學也是列印 的,都在電腦上點了列印鍵,最終我們的 並沒有和同學的 頁面混雜在...

哈工大OS實驗三 系統呼叫

1 iam 第乙個系統呼叫是 iam 其原型為 int iam const char name 完成的功能是將字串引數 name 的內容拷貝到核心中儲存下來。要求 name 的長度不能超過 23 個字元。返回值是拷貝的字元數。如果 name 的字元個數超過了 23,則返回 1 並置 errno 為 ...