Linux添加系统调用(2.6.36版本)--添加到不同的文件

来源:互联网 发布:linux配置svn服务器 编辑:程序博客网 时间:2024/06/05 12:46

LINUX系统调用的添加(2.6.36版本)中,找到了加载系统调用的一般方法,即1)在kernel/sys.c中写系统函数;2)加系统调用表项;3)添加系统调用号;4)重新编译内核。但是,如果打算不在已有的C文件中写系统调用函数,而是在新文件中添加系统调用函数呢?其中2、3步骤肯定不变,1、4步骤需要仔细考虑。

一、在新文件中添加系统调用函数

根据系统调用原理,只要系统调用号和系统调用表项固定,系统调用函数在哪个文件无所谓。因此,在内核根目录下创建新文件夹,在新文件夹中创建新文件,并在新文件中实现了系统调用。

二、编译新内核

由于添加了新文件夹和新文件,因此需要修改内核根目录下主Makefile文件,并在新文件夹下创建新Makefile。编译新内核。

在重新编译内核时中,建议参考《操作系统 内核修改与编译》http://blog.sina.com.cn/s/blog_59e7ac3c0100wpkp.html进行,其中3.7步骤中# ln -s /usr/src/linux/include/asm-generic asm一步,需要注意,链接的源( /usr/src/linux/include/asm-generic)需要根据不同的PC机架构选择不同的文件夹,比如我的PC机架构为x86架构,选择的源为:/usr/src/linux-2.6.36-stmp/arch/x86/include/asm。网上详细介绍内核修改与编译的文章基本和上文类似。

假如不参考,会导致在新内核下,无法正确调用步骤一中编写的系统调用函数。原因参考:关于/usr/include/linux和/usr/src/linux/include/linux/。


经过新的步骤,在新文件中添加系统调用函数的要求达到。大笑

原创粉丝点击