Linux系統調用及用戶編程接口(API)

系統調用

所謂系統調用是指操做系統提供給用戶程序調用的一組「特殊」接口,用戶程序可以經過這組「特殊」接口來得到操做系統內核提供的服務。好比用戶可以經過進程控制相關的系統調用來建立進程、實現進程調度、進程管理等。

爲何用戶程序不能直接訪問系統內核提供的服務呢?這是由於在Linux中,爲了更好地保護內核空間,將程序的執行空間分爲內核空間和用戶空間(也就是常稱的內核態和用戶態),它們分別執行在不一樣的級別上,在邏輯上是相互隔離的。

所以。用戶進程在一般狀況下不一樣意訪問內核數據,也沒法使用內核函數。它們僅僅能在用戶空間操做用戶數據。調用用戶空間的函數。編程

但是。在有些狀況下,用戶空間的進程需要得到必定的系統服務(調用內核空間程序),這時操做系統就必須利用系統提供給用戶的「特殊接口」——系統調用規定用戶進程進入內核空間的詳細位置。進行系統調用時。程序執行空間需要從用戶空間進入內核空間。處理完後再返回到用戶空間。 
前面講到的系統調用並不是直接與程序猿進行交互的。它不過一個經過軟中斷機制向內核提交請求,以獲取內核服務的接口。

在實際使用中程序猿調用的通常是用戶編程接口——API 函數

系統命令相對API更高了一層,它實際上一個可運行程序,它的內部引用了用戶編程接口(API)來實現對應的功能。
相關文章
相關標籤/搜索