第六章系统调用系统调用与API、系统命令、内核函数系统调用处理程序及服务例程封装例程添加新的系统调用系统调用实例
第六章 系统调用 系统调用与API、系统命令、内核函数 系统调用处理程序及服务例程 封装例程 添加新的系统调用 系统调用实例
系统调用一内核的出口·系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。从逻辑上来说,系统调用可被看成是一个r内核与用户空间程序交互的接口一一它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间
• 系统调用,顾名思义,说的是操作系统提 供给用户程序调用的一组“特殊”接口。 • 从逻辑上来说,系统调用可被看成是一个 内核与用户空间程序交互的接口——它好 比一个中间人,把用户进程的请求传达给 内核,待内核把请求处理完毕后再将处理 结果送回给用户空间。 < > 系统调用-内核的出口
系统调用与API,Linux的应用编程接口(APD)遵循POSIX标准·应用编程接口(API)其实是一组函数定义,这些函数说明了如何获得一个给定的服务;而系统调r用是通过软中断向内核发出一个明确的请求API有可能和系统调用的调用形式一致·API和系统调用关注的都是函数名、参数类型及返回代码的含义系统调用的实现是在内核完成的,而用户态的函数是在函数库中实现的KM
• Linux的应用编程接口(API)遵循 POSIX标准 • 应用编程接口(API)其实是一组函数定义,这些 函数说明了如何获得一个给定的服务;而系统调 用是通过软中断向内核发出一个明确的请求 • API有可能和系统调用的调用形式一致 • API和系统调用关注的都是函数名、参数类型及 返回代码的含义 • 系统调用的实现是在内核完成的,而用户态的函 数是在函数库中实现的 < > 系统调用与API
系统调用与系统命令·系统命令相对应用编程接口更高一层,每个系统命令都是一个可执行程序,比如ls、hostname等r·系统命令的实现调用了系统调用·通过strace ls或strace hostname命令可以香看系统命令所调用的系统调用>
• 系统命令相对应用编程接口更高一 层,每个系统命令都是一个可执行 程序,比如ls、hostname等, • 系统命令的实现调用了系统调用 • 通过strace ls或strace hostname 命令可以查看系统命令所调用的系 统调用 系统调用与系统命令 < >
系统调用与内核函数·内核函数在形式上与普通函数一样但它是在内核实现的,需要满足一些内核编程的要求r·系统调用是用户进程进入内核的接口层,它本身并非内核函数,但它是由内核函数实现的·进入内核后,不同的系统调用会找到各自对应的内核函数,这些内核函数被称为系统调用的“服务例程”KM
• 内核函数在形式上与普通函数一样, 但它是在内核实现的,需要满足一些 内核编程的要求 • 系统调用是用户进程进入内核的接口 层,它本身并非内核函数,但它是由 内核函数实现的 • 进入内核后,不同的系统调用会找到 各自对应的内核函数,这些内核函数 被称为系统调用的“服务例程” 系统调用与内核函数 < >