摘要:
最近做的项目跟Linux内核的关系比较大,我们的项目需要在用户态触发一些内核态的代码运行。众所周知,内核态的代码是不能直接被用户态代码调用的,用户态代码触发内核态代码的必须要经过系统调用。为什么选择ioctl那么该如何实现我们的需求呢?有几种方法:改写内核,扩大系统调用表,添加新的系统调用利用内核模块,覆盖没被使用或这使用频率很低的一个系统调用的处理函数利用已有的系统调用,比如ioctl,来“实现”自定义的系统调用。第一种方法需要修改内核,适用面比较窄;第二种方法hack意味很浓,没有被使用的系统调用号有限,不同模块可能都使用这种机制,可能会产生冲突。最终我们选择了第三种方法。下面将一一道来。 阅读全文
posted @ 2013-04-23 16:01
RichardUSTC
阅读(1867)
评论(0)
推荐(1)

浙公网安备 33010602011771号