一. 概念
系統呼叫(英語
:system call),指執行在
使用者空間
的應用程式
向作業系統
核心請求某些服務的呼叫過程。
系統呼叫提供了使用者程式與
作業系統
之間的介面。一般來說,系統呼叫都在核心態執行
。由於系統呼叫不考慮平台差異性,由核心直接提供,因而移植性較差(幾乎無移植性)。
庫函式(library function),
是由使用者或組織自己開發的,具有一定功能的函式集合,一般具有較好平台移植性,通過庫檔案(靜態庫或動態庫)向程式設計師提供功能性呼叫。程式設計師無需關心平台差異,由庫來遮蔽平台差異性。
二,區別呼叫※
函式庫呼叫
vs 系統
函式庫呼叫
系統呼叫
平台移植性好
依賴於核心,不保證移植性
呼叫函式庫中的一段程式(或函式)
呼叫系統核心的服務
乙個普通功能函式的呼叫
是作業系統的乙個入口點
在使用者空間執行
在核心空間執行
它的執行時間屬於
「使用者時間」
它的執行時間屬於「系統
」時間屬於過程呼叫,呼叫開銷較小
在使用者空間和核心上下文環境間切換,開銷較大
庫函式數量較多
unix
中大約有
90個系統呼叫,較少
典型的c函式庫呼叫:
printf scanf malloc
典型的系統呼叫:
fork open write
三. 聯絡
一般而言,跟核心功能與作業系統特性緊密相關的服務,由系統呼叫提供;
具有共通特性的功能一般需要較好的平台移植性,故而由庫函式提供。
庫函式與系統呼叫在功能上相互補充,如程序間通訊資源的管理,程序控制等功能與平台特性和核心息息相關,必須由系統呼叫來實現。
檔案i/o
操作等各平台都具有的共通功能一般採用庫函式,也便於跨平台移植。
某些情況下,庫函式與系統呼叫也有交集, 如
庫函式中的
i/o操作的內部實現依然需要呼叫系統的
i/o方能實現。
庫函式與系統呼叫的聯絡與區別
一.概念 系統呼叫 英語 system call 指執行在 使用者空間 的應用程式 向作業系統 核心請求某些服務的呼叫過程。系統呼叫提供了使用者程式與 作業系統 之間的介面。一般來說,系統呼叫都在核心態執行 由於系統呼叫不考慮平台差異性,由核心直接提供,因而移植性較差 幾乎無移植性 庫函式 libr...
庫函式與系統呼叫的聯絡與區別
一.概念 系統呼叫 英語 system call 指執行在使用者空間的應用程式向作業系統 核心請求某些服務的呼叫過程。系統呼叫提供了使用者程式與作業系統之間的介面。一般來說,系統呼叫都在核心態執行。由於系統呼叫不考慮平台差異性,由核心直接提供,因而移植性較差 幾乎無移植性 庫函式 library f...
筆試訓練 庫函式與系統呼叫的聯絡與區別
一.概念 系統呼叫 英語 system call 指執行在 使用者空間 的應用程式 向作業系統 核心請求某些服務的呼叫過程。系統呼叫提供了使用者程式與 作業系統 之間的介面。一般來說,系統呼叫都在核心態執行 由於系統呼叫不考慮平台差異性,由核心直接提供,因而移植性較差 幾乎無移植性 庫函式 libr...