第第1010章系统章系统调用调用本章对本章对LinuxLinux系统调用的定系统调用的定义、基本原理、使用方法和注意义、基本原理、使用方法和注意事项作了概括的介绍,以便读者事项作了概括的介绍,以便读者对对LinuxLinux系统调用建立一个大致系统调用建立一个大致的印象
较详细地讨论了系统调的印象
较详细地讨论了系统调用用waitwait、、waitpidwaitpid和和execexec函数函数族,并通过两个实际例子来说明族,并通过两个实际例子来说明系统调用
1系统调用概述系统调用概述所有的操作系统都提供多种服务的入口点所有的操作系统都提供多种服务的入口点,由此程序向内核请求服务
各种版本的,由此程序向内核请求服务
各种版本的UnixUnix都提供经良好定义的有限数目的入口都提供经良好定义的有限数目的入口点,经过这些入口点进入内核,这些入口点,经过这些入口点进入内核,这些入口点被称为系统调用点被称为系统调用(systemcall)(systemcall)
系统调用是不能更改的一种用是不能更改的一种UnixUnix特征
1系统调用过程系统调用过程图10
1系统调用过程示意图LinuxLinux内核中设置了一组用于实现各种系统功能内核中设置了一组用于实现各种系统功能的子程序,称为系统调用
用户可以通过系统调的子程序,称为系统调用
用户可以通过系统调用命令在自己的应用程序中调用它们
从某种角用命令在自己的应用程序中调用它们
从某种角度来看,系统调用和普通的函数调用非常相似
度来看,系统调用和普通的函数调用非常相似
区别仅仅在于,系统调用由操作系统核心提供,区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态