当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 最新内核2.6.34新增系统调用的疑问
帖子发表于 : 2010-06-06 20:34 

注册: 2010-06-06 20:01
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
内核已经编译完毕且可以成功启动,但新增的系统调用却无法使用。
书上资料所介绍的新编的函数的插入位置和入口表位置以及添加向量值的位置都跟2.6.34内核的文件有很大差别。
例如书上说到:
将新编写的函数插入到 /usr/src/linux-***/kernel/sys.c中,该sys.c文件里有一系列以asmlinkage开头的系统调用函数,但2.6.34内核中按该路径打开的sys.c文件并没有一系列以asmlinkage开头的系统调用函数;

同样书上说到sys_call_table在/usr/src/linux-***/arch/i386/kernel/entry.S中,entry.S文件最后几行有.long SYMBOL_NAME(sys_***)之类的代码,但2.6.34内核在i386中并没有kernel文件,到是在ia64/kernel有entry.S,但该entry.S并没有诸如.long SYMBOL_NAME(sys_***)之类的代码;

关于修改相应的头文件(添加向量值):打开2.6.34内核的unistd.h文件,最后一个带向量值的语句是#define __NR_for 1079,该语句是系统调用还是对头文件总数的统计?该语句之前的语句的声明都是采用下面的格式:
#define __NR_sysctl 1078
__SYSCALL(__NR_sysctl,sys_sysctl)//标记一

标记一这条语句必须下吗?

由于参考资料都是基于rad hat的编译,跟实际有很大出入,请知道的讲解一下,谢谢 :em01


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 最新内核2.6.34新增系统调用的疑问
帖子发表于 : 2010-06-07 16:50 
头像

注册: 2008-07-23 20:08
帖子: 1532
地址: http://www.ghostry.cn
送出感谢: 0 次
接收感谢: 1
已经.44啦,我的还.22呢


_________________
http://www.ghostry.cn狂网技术工作室,组网建站,平面设计,java项目,空间域名.
好心人点这里进去注册并且用一次,给我增加点流量http://tinyurl.com/272ncjl
电脑配置:
公司:880G/II250/1TB/2G1333/
家:785G+/II245+/1TB/2G677/


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 最新内核2.6.34新增系统调用的疑问
帖子发表于 : 2010-07-03 11:09 

注册: 2010-07-03 10:59
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
在linux的2.6.34之中(不是只有该版本和以前不同)文件架构有些变化,增加系统调用其实只要修改3个文件
usr/src/linux -2.6.34/arch/x86/include/asm unistd_32.s
usr/src/linux -2.6.34/arch/x86/kernel/syscall_table_32.s
usr/src/linux-2.6.34/kernel/sys.c(在这添加具体的实现,其实这个不是唯一的位置,因为只有在编译的时候才具体的知道函数的地址,实际的地址是在编译的时候编译器将起绑定的,函数的具体实现写在哪是无所谓的)

修改完重新编译内黑一切OK


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译