系统调用

  一般情况下,用户进程不能访问内核中的函数和数据,除了中断和系统调用。在linux内核中设置一组用于实现系统功能的函数,用户可以通过系统调用命令去实现一定的功能。系统调用由操作系统内核实现,运行于内核态,普通的函数由函数库或用户自己定义,运行于用户态。

  应用程序使用适当的值(系统调用号)填充寄存器,然后调用特殊的指令(intel体系中0x80,ARM中SVC指令)跳转到内核中某一个固定位置,内核根据应用程序中所填充的固定值来找到相应的函数(系统调用表中sys_call_table找到相应的内核函数)执行。

添加一个新的系统调用

1.添加新的内核函数

2.更新头文件unistd.h

3.针对这个新函数更新系统调用表calls.S

posted @ 2020-11-23 17:12  11YS  阅读(78)  评论(0)    收藏  举报