核心函式 系統呼叫 系統命令 庫函式
核心函式
執行在核心態的,一般來說特權級較高。
系統呼叫
系統呼叫是程式進入核心函式的介面層,大量的核心函式被封裝再系統呼叫中。再進入不同的系統呼叫之後,系統呼叫中的核心函式被稱為該系統呼叫的服務例程。
系統命令
比如在cmd中的ls,ll。系統命令相比於庫函式就會更高一層,每一個系統命令都是一個可執行的程式。比如我們strace ls。就可以看出來他呼叫了open(),brk()等系統呼叫命令。
strace 是一個Linux使用者空間跟蹤器,可以通過它來監視使用者程式和核心的互動,比如系統呼叫,訊號傳遞和程式狀態變更……
strace底層使用核心的ptrace特性來實現其功能。
庫函式
庫函式也就是我們所說的程式設計介面,application programming interface。比如常見的檔案操作,read(),write()。而這樣的操作必定是接觸到硬體的,因此也一定會進入核心態。那為什麼不直接使用系統呼叫呢?
這是因為在使用者態和核心態中,我們都是用了緩衝區技術。我們會等到緩衝區滿的時候,才會將所有的資料寫回去。這樣就減少了使用者態和核心態切換的次數及其成本。
所以不直接使用系統呼叫技術。
相關文章
- C程式函式呼叫&系統呼叫C程式函式
- python 系統函式呼叫sed分組Python函式
- 使用Excel呼叫ABAP系統的函式Excel函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- 系統呼叫與庫函式是什麼,區別是什麼函式
- linux之系統命令command和系統呼叫system calls及函式function之間的關係Linux函式Function
- x64架構下Linux系統函式呼叫架構Linux函式
- PHP exec system passthru系統函式PHP函式
- openGauss系統函式新增指導函式
- 作業系統---之fork()函式作業系統函式
- 【SQL Server】常見系統函式SQLServer函式
- GBase 8s系統函式函式
- shell系統函式和流程控制函式
- 資料庫系統------函式依賴與正規化資料庫函式
- 遞迴匿名函式手動實現 http_build_query 系統函式遞迴函式HTTPUI
- oracle 系統自帶幾個常用函式Oracle函式
- MySQL全面瓦解13:系統函式相關MySql函式
- 子函式呼叫函式
- 函式呼叫棧函式
- 分散式系統:遠端呼叫分散式
- PostgreSQL函式裡呼叫函式(SETOF + RETURN QUERY)SQL函式
- 普通函式與函式模板呼叫規則函式
- 怎麼快速記憶系統陣列函式陣列函式
- 使用Java connector消費ABAP系統的函式Java函式
- Shell中常用的系統函式basename和dirname函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- 普通函式與函式模板呼叫規則2函式
- 作業系統(一)作業系統歷史:從標準函式庫到雲端計算作業系統函式
- 字串與數字轉換函式 | 全方位認識 sys 系統庫字串函式
- 外部函式的呼叫函式
- gdb 如何呼叫函式?函式
- iOS逆向(6)-從fishhook看Runtime,Hook系統函式iOSHook函式
- 關於PostgreSQL的系統資訊函式的OIDSQL函式
- 日誌: 分散式系統的核心分散式
- 分散式系統的核心問題分散式
- PHP 函式庫 1 - 函式庫的分類PHP函式
- 影片直播系統原始碼,在Laravel中自定義模板函式 並在模板中呼叫原始碼Laravel函式
- 如何使用 Java 程式透過 SAP Java Connector 呼叫 ABAP 系統的函式試讀版Java函式