系统调用
所谓系统调用就是内核提供的功能十分强大的一系列函数,这些系统调用在内核中实现,再通过一定的方式把系统调用给用户。系统调用是用户程序和内核交互的交口。
二、 系统调用的作用
系统调用在Linux系统中发挥着巨大的作用.如果没有系统调用,那么应用程序就失去了内核的支持。
我们在编程时用到的很多函数,如fork、open等这些函数最终都是在系统调用里实现的,比如说我们有这样一个程序:
- #include <unistd.h>
- #include <stdio.h>
- int main()
- {
- fork();
- exit(0);
- }
这里我们用到了两个函数,即fork和exit,这两函数都是glibc中的函数,但是如果我们跟踪函数的执行过程,看看glibc对fork和exit函数的实现就可以发现在glibc的实现代码里都是采用软中断的方式陷入到内核中再通过系统调用实现函数的功能的。具体过程我们在系统调用的实现过程会详细的讲到。
由此可见,系统调用是用户接口在内核中的实现,如果没有系统调用,用户就不能利用内核。