当前位置: 技术问答>linux和unix
找不到系统调用表entry.s,什么原因?
来源: 互联网 发布时间:2016-03-28
本文导语: 我想添加一个简单的系统调用,从网山搜到的步骤是这样的: 1.在kernel/sys.c中添加系统调写函数 2.给新的系统调用分配调用号: 在include/asm-i386/unistd.h中添加 3. /usr/src/linux/arch/i386/kernel entry.S 前两步都找到了,但是...
我想添加一个简单的系统调用,从网山搜到的步骤是这样的:
1.在kernel/sys.c中添加系统调写函数
2.给新的系统调用分配调用号:
在include/asm-i386/unistd.h中添加
3. /usr/src/linux/arch/i386/kernel entry.S
前两步都找到了,但是第三步中的arch/i386下没有kernel这个文件夹,只有一个boot文件夹,为什么,是不是内核编译没成功的问题?怎么看内核编译成不成功?
还有,我在有些地方看到第二步是在/usr/include/asm/unistd.h中添加内容,到底是哪里?
谢谢各位,帮帮忙了!谢谢
1.在kernel/sys.c中添加系统调写函数
2.给新的系统调用分配调用号:
在include/asm-i386/unistd.h中添加
3. /usr/src/linux/arch/i386/kernel entry.S
前两步都找到了,但是第三步中的arch/i386下没有kernel这个文件夹,只有一个boot文件夹,为什么,是不是内核编译没成功的问题?怎么看内核编译成不成功?
还有,我在有些地方看到第二步是在/usr/include/asm/unistd.h中添加内容,到底是哪里?
谢谢各位,帮帮忙了!谢谢
|
个人理解:
arch/i386/kernel这个文件夹,是下载了源代码之后就应该有的,和编译没关系。没有这个文件夹,编译不会成功。
include/asm-i386/unistd.h:是给内核代码用的,一定要改。
/usr/include/asm/unistd.h:是给用户空间代码用的,如果要编译用户空间代码,就要改。系统调用好像就是应该给用户空间的代码使用的,
请楼下指正。
http://blog.csdn.net/kanghua/archive/2007/10/22/1836840.aspx
http://blog.csdn.net/mfxie88/archive/2007/05/11/1604932.aspx
http://blog.csdn.net/menuconfig/archive/2007/07/23/1702866.aspx
arch/i386/kernel这个文件夹,是下载了源代码之后就应该有的,和编译没关系。没有这个文件夹,编译不会成功。
include/asm-i386/unistd.h:是给内核代码用的,一定要改。
/usr/include/asm/unistd.h:是给用户空间代码用的,如果要编译用户空间代码,就要改。系统调用好像就是应该给用户空间的代码使用的,
请楼下指正。
http://blog.csdn.net/kanghua/archive/2007/10/22/1836840.aspx
http://blog.csdn.net/mfxie88/archive/2007/05/11/1604932.aspx
http://blog.csdn.net/menuconfig/archive/2007/07/23/1702866.aspx