在Linux内核源内实现系统调用/陷阱
我正在学习操作系统使用陷阱来促进 Linux内核中的系统调用.我将陷阱的表格放在traps.c中,并在entry.S中实现了许多陷阱. 然而,我被指示在Linux内核中找到一个利用陷阱实现系统调用的两个系统调用的实现.虽然我可以自己找到陷阱的定义,但我不知道在内核中这些陷阱之一的“调用”是什么样的.因此,我正在努力寻找这个行为的例子. 在任何人问之前,是的,这是家庭作业. 作为一个注释,由于kernel.org关闭,我使用Github来浏览内核源代码 解决方法对于x86架构,SYCALL_VECTOR(0x80)中断仅用于32位内核.您可以在arch / x86 / include / asm / irq_vectors.h中看到中断向量布局.来自traps.c的trap_init()函数是设置entry_32.S中定义的陷阱处理程序的trap_init()函数:set_system_trap_gate(SYSCALL_VECTOR,& system_call); 对于64位内核,出于性能原因使用新的SYSENTER(Intel)或SYSCALL(AMD)入侵.来自arch / x86 / kernel / cpu / common.c的syscall_init()函数设置entry_64.S中定义的“处理程序”,并具有相同的名称(system_call). 对于用户空间有限,您可能需要查看this page(有点过时的功能/文件名). (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Linux内核中的prio,static_prio,rt_priority
- linux – su和sudo在shell脚本中
- Ansible非root sudo用户和“成为”特权升级
- TwitteR r包:/usr/lib/x86_64-linux-gnu/libcurl.so.4:找
- linux – 链接到特定的inode
- LINUX教程:如何在Ubuntu或衍生系统安装Linux Kernel 4.4.7
- 让rsync仅报告已更新的文件
- nfs – _____服务器的术语,其网络共享与另一个_____服务器不
- Unix域上的套接字在Solaris 10上比在Linux上慢100倍?
- linux – Perl DBI替代LongReadLen