为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

chp5系统调用

2011-07-27 12页 ppt 78KB 9阅读

用户头像

is_601861

暂无简介

举报
chp5系统调用null第5章 系统调用第5章 系统调用本章的主要内容本章的主要内容什么是系统调用? 与库函数和API的关系 linux 内核如何实现系统调用以及执行一个系统调用时发生的事情? 如何增加一个新的系统调用? 实现系统调用的好处与坏处?API, POSIX, 和 C 库API, POSIX, 和 C 库系统调用为用户空间进程提供一个接口 为什么需要这一层? 为用户空间提供一个接口。 保证系统的安全和稳定。 Linux中,系统调用是唯一合法访问内核的入口。API, POSIX, 和C 库函数API, POSIX, 和C 库函...
chp5系统调用
null第5章 系统调用第5章 系统调用本章的主要内容本章的主要内容什么是系统调用? 与库函数和API的关系 linux 内核如何实现系统调用以及执行一个系统调用时发生的事情? 如何增加一个新的系统调用? 实现系统调用的好处与坏处?API, POSIX, 和 C 库API, POSIX, 和 C 库系统调用为用户空间进程提供一个接口 为什么需要这一层? 为用户空间提供一个接口。 保证系统的安全和稳定。 Linux中,系统调用是唯一合法访问内核的入口。API, POSIX, 和C 库函数API, POSIX, 和C 库函数API是应用程序接口 应用针对API编程,不直接使用系统调用. API定义了应用程序使用的一组程序接口. POSIX . Linux 与POSIX完全兼容. Linux中的系统调用接口,与大多数Unix系统类似,以C 库的形式提供。 API, POSIX, 和C 库API, POSIX, 和C 库Figure 5.1. 应用、C 库, 和内核的关系,以printf()为例. 系统调用系统调用系统调用 (syscalls) 通过函数调用访问。系统调用需要一些输入参数,同时返回一个返回值用于指定系统调用是否成功. 系统调用有一个定义的行为. 在Linux中, 每一个系统调用分配有一个syscall 号. 这是一个唯一的整数,用于指定系统调用. syscall号分配后,不能够改变或回收. Linux中的系统调用比许多其他操作系统要快. 系统调用处理程序系统调用处理程序由于不允许用户空间的应用直接访问内核代码,应用必须通知内核,它想执行系统调用,使系统切换到内核方式。 通知的机制内核是一个软中断:产生一个异常,系统切换到内核模式,执行异常处理程序,即系统调用处理程序。 在x86上,定义的软中断是函数system_call(). x86 处理器增加了一个特性sysenter. 正确的系统调用 正确的系统调用 应用必须使用系统调用号进入内核空间。在x86中,使用eax寄存器。 system_call()函数检查调用号,如合法,调用指定的系统调用。 系统调用的实现 系统调用的实现 系统调用的实现并不关心它和系统调用处理函数之间的关系。给Linux增加一个系统调用非常容易。怎样设计和实现系统调用是难点所在。 给Linux增加一个系统调用的的注意事项 定义系统调用的目的. 系统调用的参数、返回值以及错误码. 设计的接口尽量为将来考虑 注意可移植性和健壮性系统调用的实现系统调用的实现参数验证 系统调用必须保证其所有的参数是合法的,例如访问权限. 两种方法完成必须的检查和内核空间与用户空间之间的数据拷贝: 向用户空间写数据, 可用方法 copy_to_user(目标地址,源地址,要拷贝的数量) 从用户空间读数据,可用方法copy_from_user(目标地址,源地址,要拷贝的数量) 读写权限检查. suser() 和 capable() 系统调用上下文系统调用上下文绑定一个系统调用的步骤 首先在系统调用的最后加入一个表项。 对于每一种支持的体系结构,系统调用号必须定义在 . 系统调用必须被编译进内核映像。 从用户空间访问系统调用 Linux 提供了一组宏,用于直接访问系统调用。它设置寄存器内容,并执行trap指令。这些宏是 _syscalln(), 这里n:0-6。 系统调用上下文系统调用上下文为什么不实现一个系统调用? 增加新的系统调用要谨慎。通常有很多比增加一个新的系统调用更好的方法。 实现一个新的系统调用的好处: 系统调用容易使用容易实现。 系统调用的性能在Linux中非常快。 缺点: 系统调用号需要官方授权给你。 系统调用一旦进入稳定的内核,其接口就不能再改变,否则会影响用户空间的应用. 需要将系统调用分别注册到每个需要支持的体系结构。 系统调用在脚本中不宜使用,不能直接从文件系统访问。 如果仅仅进行简单的信息交换,系统调用就大材小用了。 还有很多替代的方法
/
本文档为【chp5系统调用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索