系统调用程序及服务例程 ●当用户态进程调用一个系统调用时,CPU切换到内核态并开始执 行相应的内核函数 。在Linux中是通过执行int$0x80来执行系统调用的, 这条汇编指令产生向量为128的编程异常 (回忆,trap_init中系统调用入口的初始化) 。Intel Pentium II中引入了sysenter指令(快速系统调用), 2.6已经支持(本课程不考虑这个) ●传参: 内核实现了很多不同的系统调用,进程必须指明需要哪个 系统调用,这需要传递一个名为系统调用号的参数 ●Linux使用eax寄存器传递系统调用号 1口+4四1克42在刀QC 陈香兰(xianchenoustc,edu,cn)(计算丸应【inx操许系统分折Chapter书系统码月 0 ctober24,20146/31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 系统调用程序及服务例程 当用户态进程调用一个系统调用时,CPU切换到内核态并开始执 行相应的内核函数 在Linux中是通过执行int $0x80来执行系统调用的, 这条汇编指令产生向量为128的编程异常 (回忆,trap_init中系统调用入口的初始化) Intel Pentium II中引入了sysenter指令(快速系统调用), 2.6已经支持(本课程不考虑这个) 传参: 内核实现了很多不同的系统调用,进程必须指明需要哪个 系统调用,这需要传递一个名为系统调用号的参数 Linux使用eax寄存器传递系统调用号 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 6 系统调用 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 24, 2014 6 / 31