linux核心系統呼叫和庫函式的關係分析

2022-05-17 22:27:03 字數 515 閱讀 9825

簡單來說,核心作為系統的核心,向系統的其他部分提供硬體裝置管理、系統資源分配、程序間的通訊與排程等服務。為了便於向系統的其他部分提供服務,核心提供了一系列的系統呼叫介面(api,linux相容unix的api),應用程式可以通過系統呼叫實現硬體資源的訪問等等的功能。然而,為了保證系統呼叫的通用性(所謂提供機制而非策略),系統呼叫所提供的功能往往比較基礎,在使用系統呼叫時還需要進行很多額外的操作。

為了簡化應用程式的編寫,庫函式針對不同的需求對系統呼叫進行了進一步的封裝,除了呼叫系統的介面以外還進行很多其他的操作,以實現更加複雜的功能。拿printf()函式來說,它提供了資料的快取和格式化等操作,而呼叫write()函式將資料寫到控制台之上只不過是其中的乙個動作而已(有一些庫函式甚至不會進行系統呼叫,如strcpy())。應用程式通過呼叫庫函式,再由庫函式通過系統呼叫進入核心,使用核心所提供的各種服務。

需要注意的是,應用程式一般執行在使用者空間,其只有在進行系統呼叫時才進入到核心空間執行。這種互動關係---應用程式通過系統呼叫陷入核心---是應用程式完成其工作的基本行為方式。

linux系統呼叫 庫函式和核心函式關係與區別

看系統呼叫,還有庫函式,以前一直不明白,總是以為 系統呼叫跟庫函式是一樣的,但是今天才知道是不一樣的。庫函式也就是我們通常所說的應用程式設計介面api,它其實就是乙個函式定義,比如常見read write 等函式說明了如何獲得乙個給定的服務,但是系統呼叫是通過軟中斷向核心發出乙個明確的請求,再者系統...

Linux系統呼叫和庫函式呼叫

linux下對檔案操作有兩種方式 系統呼叫 system call 和庫函式呼叫 library functions 可以參考 linux程式設計 英文原版為 beginning linux programming 作者是neil matthew和richard stones 第三章 working...

Linux系統呼叫和庫函式呼叫

linux下對檔案操作有兩種方式 系統呼叫 system call 和庫函式呼叫 library functions 可以參考 linux程式設計 英文原版為 beginning linux programming 作者是neil matthew和richard stones 第三章 working...