深入理解Linux核心 系統呼叫

2021-09-08 11:14:34 字數 547 閱讀 8954

系統呼叫:使用者態程序向核心發出的,實現使用者態程序呼叫硬體裝置的函式或者中斷;

優點:使程式設計更容易,將使用者從學習硬體裝置的低階程式設計特性中解放;提高系統到安全性,核心在滿足請求之前可以做正確性檢查;提高可移植性;

系統呼叫與api呼叫的區別:

1、api呼叫是乙個函式定義;系統呼叫是通過軟中斷向核心發出的明確請求

2、核心不可以訪問庫函式

核心中,返回值為正數或者0表示系統呼叫成功結束,否則表示出錯條件

進入核心態的兩種方式:1、執行 int $0x80 指令 ;2、執行 sysenter 指令

核心推出系統呼叫方式:1、執行 iret 指令; 2、使用sy***it指令

系統呼叫傳遞引數:

1、它將引數儲存在cpu暫存器,然後由核心去讀取;不能直接講引數從使用者態棧傳遞到核心態棧,原因是這樣會更複雜

2、受暫存器的限制,引數的個數不能超過6個;多餘6個可以通過傳引數集合的位址

3、引數的長度受暫存器的限制,不能超過32bit,同樣可以通過傳位址解決。

引數檢查:

1、

深入理解Linux系統呼叫

環境準備 1.安裝環境 1 sudo apt install build essential 2 sudo apt install qemu install qemu 3 sudo apt install libncurses5 dev bison flex libssl dev libelf de...

深入理解系統呼叫

一.實驗要求 二.實驗環境搭建 1.安裝開發工具 sudo apt install build essential sudo apt install qemu install qemu sudo apt install libncurses5 dev bison ex libssl dev libe...

深入理解Linux核心 核心同步

核心基本的同步機制 搶占核心的主要特點 乙個在核心態執行的程序,可能在執行核心函式期間被另外乙個程序取代。核心搶占 linux 2.6允許使用者在編譯核心的時候配置十分啟用 程序臨界區 每個程序中訪問臨界資源 一次僅允許乙個程序使用的共享資源 的那段 稱為臨界區。優化屏障 保證編譯程式不會混淆放在原...