linux内核分析之系统调用
来源:互联网 发布:淘宝banner全屏代码 编辑:程序博客网 时间:2024/05/20 07:52
在内核入口函数start_kernel中调用trap_init实现系统调用的初始化工作
void __init trap_init(void){...set_system_trap_gate(SYSCALL_VECTOR, &system_call);....}也就是IDT中0x80用来实现系统调用,实现系统调用的函数为system_call,为汇编实现
ENTRY(system_call)RING0_INT_FRAME# can't unwind into user space anywaypushl %eax# save orig_eaxCFI_ADJUST_CFA_OFFSET 4SAVE_ALLGET_THREAD_INFO(%ebp)# system call tracing in operation / emulationtestl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)jnz syscall_trace_entrycmpl $(nr_syscalls), %eaxjae syscall_badsyssyscall_call:call *sys_call_table(,%eax,4)/*跳转到具体的系统调用函数*/movl %eax,PT_EAX(%esp)# store the return valuesyscall_exit:LOCKDEP_SYS_EXITDISABLE_INTERRUPTS(CLBR_ANY)# make sure we don't miss an interrupt# setting need_resched or sigpending# between sampling and the iretTRACE_IRQS_OFFmovl TI_flags(%ebp), %ecxtestl $_TIF_ALLWORK_MASK, %ecx# current->workjne syscall_exit_work........具体的系统调用函数存放在sys_call_table表中,在调用system_call具体的系统调用号存放在eax寄存器中。
- linux内核分析之系统调用
- Linux内核分析之系统调用工作机制简析
- Linux内核之系统调用
- Linux内核之系统调用
- linux内核之系统调用
- linux内核之系统调用
- linux内核分析笔记----系统调用
- linux内核分析笔记----系统调用
- Linux系统调用内核态分析
- linux内核mount系统调用源码分析
- Linux内核源代码情景分析-系统调用
- Linux内核分析四:系统调用
- Linux内核分析-4/5/系统调用
- Linux内核学习之四--进程、进程调度、系统调用、proc文件系统和内核异常分析
- Linux内核分析之五——分析系统调用(system_call)的执行机制
- Linux内核学习之系统调用
- linux内核介绍之系统调用过程
- Linux 内核开发之系统调用
- NYOJ——114题某种序列
- Android利用NDK实现C++开发
- sql获取自增行号
- 在数据库中条件查询很慢的时候,如何优化
- rails3 正则路由-----Rails3 Route用法集锦
- linux内核分析之系统调用
- oracle中多实例配置多监听器的问题
- Hibernate中get方法和load方法的区别
- hdoj 2046 骨牌铺方格(递推)
- Win环境安装VMware Server 2.0手记
- MyEclipse 自动提示配置
- C#关于textbox的text属性
- 2011年终总结
- BMP文件结构