系統呼叫在使用者程序和硬體裝置之間新增了乙個中間層。該層的作用有三個:
系統呼叫是使用者空間訪問核心的唯一手段;除異常和陷入外,它們是核心唯一的合法入口,實際上其它裝置檔案和/proc之類的方式,最終也還是要通過系統呼叫進行訪問。
一般情況下,應用程式通過使用者空間時線的應用程式設計介面(api)而不是直接通過系統呼叫來程式設計,好處在於,api可以在各種不同的作業系統上使用相應的系統呼叫來實現而給應用程式提供完全相同的介面。
arm 平台系統呼叫的具體過程參考之前的一篇文章:arm linux系統呼叫流程詳細解析-swi
核心在執行系統呼叫的時候處於程序上下文,核心可以休眠(比如在系統呼叫中阻塞或顯示呼叫schedule()),並且可以搶占。
建立乙個新的系統呼叫非常容易,但絕不提倡這麼做,通常都有更好的辦法來替代新建乙個系統呼叫以作實現。
建立乙個新的系統呼叫的好處:
問題是:
替代方法
第五章 系統呼叫
第二,系統呼叫保證了系統的穩定和安全。作為硬體裝置和應用程式之間的中間人,核心可以基於許可權 使用者型別和其它一些規則對需要進行的訪問進行裁決。第三,每個程序都執行在虛擬系統中,而在使用者空間和系統的其餘部分提供這樣一層公共介面,也是出於這種考慮。linux 系統呼叫的高效能顯而易見。系統呼叫被加入...
第五章 系統呼叫
1.系統呼叫的作用 實現多工和虛擬記憶體的需要 2.在linux中,系統呼叫是除了異常和陷入之外,使用者空間訪問kernel的唯一手段。3.系統呼叫在出現錯誤的時候c庫會把錯誤碼寫入errno全域性變數。通過呼叫perror 庫函式,可以把變數翻譯成使用者可以理解的錯誤字串。4.在include l...
python第五章 Python學習(第五章)
記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...