所有的作業系統都提供多種服務的入口點,由此程式向核心請求服務。各種版本的unix實現都提供良好定義、數量有限、直接進入核心的入口點,這些入口點被稱為系統呼叫(system call)。
unix所使用的的技術是為每個系統呼叫在標準c庫中設定乙個具有相同名字的函式。使用者程序用標準c呼叫序列來呼叫這些函式,然後函式有用系統所要求的技術呼叫相應的核心服務。
通用庫函式在可能會呼叫乙個或多個核心的系統呼叫,但是它們並不是核心的入口點。有的函式並不適用任何核心的系統呼叫,例如strcpy和atoi。
庫函式可以被替換,但是系統呼叫通常是不能被替換的。
以malloc函式為例:核心中的系統呼叫分配一塊空間給程序,,而庫函式malloc則在使用者層次管理這一空間。
unix系統提供的判斷當前時間和日期的介面:unix系統提供乙個系統呼叫, 該系統呼叫返回自協調世界時(是以原子時秒長為基礎,在時刻上盡量接近於世界時的一種時間計量系統)2023年1月1日零時這個特定時間以來所經過的秒數。對該值的任何解釋,都留給使用者程序進行處理。
應用程式既可以呼叫系統呼叫也可以呼叫庫函式。很多庫函式則會呼叫系統呼叫。
系統呼叫通常提供一種最小介面,而庫函式通常提供比較複雜的功能。
系統呼叫和庫函式
unix 環境高階程式設計 一書中如此說 所有作業系統都提供多種服務的入口點,由此程式向系統核請求服務。各種版本的unix都 提供經良好定義的有限數目的入口點,經過這些入口點進入系統核,這些入口點被稱之為 系統呼叫 system call 系統呼叫是我們不能更改的一種unix特徵。unix版本7提供...
系統呼叫和庫函式
在計算機中,系統呼叫 英語 system call 又稱為系統呼叫,指執行在使用者空間的程式向作業系統核心請求需要更高許可權執行的服務。系統呼叫提供了使用者程式與作業系統之間的介面。大多數系統互動式操作需求在核心態執行。如裝置io操作或者程序間通訊。庫函式是在系統呼叫上的一層包裝,執行在使用者態 u...
系統呼叫和庫函式
系統呼叫概述 系統呼叫,我們可以理解是作業系統為使用者提供的一系列操作的介面 api 這些介面提供了對系統硬體裝置功能的操作。這麼說可能會比較抽象,舉個例子,我們最熟悉的 hello world 程式會在螢幕上列印出資訊。程式中呼叫了 printf 函式,而庫函式 printf 本質上是呼叫了系統呼...