使用系統調用的原因以及其與庫函數(api)的區別

來源:互聯網
上載者:User

標籤:a   檔案   資料   使用   類   應用   

為什麼需要系統調用?主要有以下兩方面原因。

(1)系統調用可以為使用者空間提供訪問硬體資源的統一介面,以至於應用程式不必去關注具體的硬體訪問操作。比如,讀寫檔案時,應用程式不用去管磁碟類型,甚至於不用關心是哪種檔案系統。

(2)系統調用可以對系統進行保護,保證系統的穩定和安全。系統調用的存在規定了使用者進程進入核心的具體方式,換句話說,使用者訪問核心的路徑是事先規定好的,只能從規定位置進入核心,而不準許肆意跳入核心。有了這樣的進入核心的統一訪問路徑限制才能保證核心的安全。

(3)系統調用具有更強的功能。

系統調用和庫函數的區別:

   1.系統調用是為了方便應用使用作業系統的介面,而庫函數是為了方便人們編寫應用程式而引出的,比如你自己編寫一個函數其實也可以說就是一個庫函數。

   2.系統調用可以理解為核心提供給我們在使用者態用的介面函數,可以認為是某種核心的庫函數。

   3.作業系統API的主要作用是把作業系統的功能完全展示出來,提供給應用程式,基於該作業系統,與檔案、記憶體、時鐘、網路、圖形、各種外設等互操作的能力。此外,作業系統API通常還提供許多工具類的功能,比如操縱字串、各種資料類型、時間日期等。API函數和系統調用之間有著直接的關係,一個API函數可以由一個系統調用實現,也可以通過調用多個系統調用來實現,還可以完全不使用任何系統調用。

   4.系統調用效率不一定比庫函數高

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.