应用程序通过系统调用来访问内核,实现运行。
应用程序通过调用库函数,例如C库函数,然后由库函数通过系统调用界面让内核代其完成不同的任务。
应用程序不是完全依靠内核来实现功能的实现,有的是完全使用。例如:实现两个字符串的拷贝strcpy就不用劳烦内核资源,库函数就可以完全做到;另外,printf函数是两个合作完成的,其数据缓冲和格式的准备是有应用程序层次来完成的,至于数据的打印输出则是由内核来完成的;那么,看看只有内核完成的一个动作,文件的打开:open(),应用程序层除了一个调用动作外,什么都不做。
应用程序的运行是内核的运行,应用程序陷入了内核当中,此时的内核被称为进程的上下文中。应用程序通过系统调用而陷入内核是应用程序运行的一个重要方式之一。