内核驱动之Linux系统调度

来源:互联网 发布:做特技的软件 编辑:程序博客网 时间:2024/05/22 12:35

1
系统调用和普通的函数调用区别:
系统调用由操作系统内核实现,运行于内核态;
普通的函数调用由函数库或用户自己提供,运行于用户态
2
工作原理:
应用程序首先用《适当的值》填充寄存器,然后调用一个《特殊的指令》跳转到内核某一《固定的位置》,内核根据应用程序所填充的固定值来找到《相应的函数执行》
3
适当的值:系统调用号
特殊的质量:在ARM中,是SWI(已经重命名为SVC指令)
固定的位置:ENTRY(vector_swi)<entry-common.S>
相应的函数:从系统调用表sys_call_table找到相应的内核函数。
CALL(sys_restart_syscall)
CALL(sys_exit)
CALL(sys_fork_wrapper)

4
实现系统,需要执行的3个步骤:
(1)添加新的内核函数
(2)更新头文件unistd.h
(3)针对这个新函数更新系统调用表calls.S

原创粉丝点击