一、用戶空間:
1)C標准庫:是適用於所有c語言編寫的程序,沒有平台差異性。
在用戶空間程序員可以直接調用的。
用C語言和匯編語言實現的。
有的庫函數封裝了系統調用函數(調用庫函數就可以間接調用系統調用)。
2)系統API(以庫的形式提供): 具有平台差異性,比如windows API 就不能在Linux平台上使用
它是操作系統提供給用戶的接口,可以讓用戶直接使用操作系統的某個服務。
一個API可能調用了一個系統調用,也可能對應好幾個系統調用。
二、內核空間:
1)系統調用:由內核提供給用戶的接口,使用戶可以對內核做操作。
但是需要進入內核態,才能調用。
系統調用是用戶進程進入內核的接口層,它本身並非內核函數,但他是由內核函數實現的,進入系統內核后,不同的系統調用會找到各自對應的內核函數,這寫內核函數被稱為系統調用的“服務例程”。也可以說系統調用是服務例程的封裝例程。
2)內核函數:實現內核功能的函數