扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
系统调用
用户空间和内核空间之间的通信实现
● 与系统调用相关的数据结构和函数
系统调用函数名以“sys_”开头,后面是该系统调用的名字,由此构成了221个形似sys_name()的函数名。include/asm-i386/unistd.h中为每一个系统调用规定了惟一的编号,假设用name来表示系统调用的名称,那么系统调用号与系统调用响应函数的关系是:以系统调用号__NR_name作为下标,可找出系统调用表sys_call_table中对应表项的内容,它也就是该系统调用的响应函数sys_name的入口地址。
● 系统调用具体执行流程
当执行一个系统调用时,处理器跳转到地址 0xc00。
参考代码:
|
有关DoSyscall,它在文件arch/ppc/kernel/entry.S 中定义。这个函数最终使用系统调用编号将系统调用表的地址和索引加载,操作系统使用系统调用表将系统调用编号翻译为特定的系统调用。
系统调用表名为 sys_call_table,在 arch/ppc/kernel/misc.S 中定义。系统调用表包含有实现每个系统调用的函数的地址。
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者