2013-08-17 166 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

系统调用是将在用户和内核之间调用的函数列表。 但系统程序是可以做系统工作的程序,如: 更改系统设置。访问注册。访问内存。访问磁盘等。