系统调用
一般情况下,用户进程不能访问内核中的函数和数据,除了中断和系统调用。在linux内核中设置一组用于实现系统功能的函数,用户可以通过系统调用命令去实现一定的功能。系统调用由操作系统内核实现,运行于内核态,普通的函数由函数库或用户自己定义,运行于用户态。
应用程序使用适当的值(系统调用号)填充寄存器,然后调用特殊的指令(intel体系中0x80,ARM中SVC指令)跳转到内核中某一个固定位置,内核根据应用程序中所填充的固定值来找到相应的函数(系统调用表中sys_call_table找到相应的内核函数)执行。
添加一个新的系统调用
1.添加新的内核函数
2.更新头文件unistd.h
3.针对这个新函数更新系统调用表calls.S

浙公网安备 33010602011771号