2013-08-17 214 views

回答

3

系統調用看起來像從程序中調用的函數。系統調用的例子包括:

的系統實用程序是從一個外殼提示一個外殼腳本內執行,從,或(可能混淆性)通過在C(其進而使用system()功能,除其他系統調用一個完整的程序,fork()execv())。

實施例的命令(系統實用程序)包括:

因此,系統調用的程序內使用;系統實用程序是程序。

+0

正在執行的系統程序是用戶模式/內核模式還是部分用戶模式和內核模式? –

+0

我不太確定你在問什麼,但答案是兩個 - 部分是用戶,部分是內核。系統調用涉及從用戶模式到內核模式的轉換並再次返回。 'system()'函數執行多個系統調用。 –

1

系統程序是可執行文件,而系統調用是與例程操作系統功能交互的C例程,可以編譯爲系統程序。

例如「LS」和「/ bin/hostname命令」是可執行的系統程序:

sh-3.2$ ls -l /bin/hostname 
-rwxr-xr-x 1 root wheel 14304 Jul 14 11:03 /bin/hostname 
sh-3.2$ /bin/hostname 
mycomputer 

如果你看一下手冊頁主機它會向您推薦「的gethostname(3)」,這是一個C系統調用,實際上是用於爲主機名程序提供輸出的相同調用。

0

系統調用是將在用戶和內核之間調用的函數列表。 但系統程序是可以做系統工作的程序,如: 更改系統設置。訪問註冊。訪問內存。訪問磁盤等。