当前位置:  技术问答>linux和unix

一个关于LKM的简单问题

    来源: 互联网  发布时间:2015-04-25

    本文导语:  各位大侠,小弟在Linux8.0(kernel 2.4.18-14)上写LKM程序。 但无法取得sys_call_table[],装载时提示为sys_call_table没有找到。 但在Linux7.3(kernel 2.4.18-3)上可以运行。 请各位指点指点,谢谢· | kernel2.4.1...

各位大侠,小弟在Linux8.0(kernel 2.4.18-14)上写LKM程序。
但无法取得sys_call_table[],装载时提示为sys_call_table没有找到。
但在Linux7.3(kernel 2.4.18-3)上可以运行。

请各位指点指点,谢谢·

|
kernel2.4.18以上的版本没有引出sys_call_table,
你可以去Linux伊甸园的论坛看看,那里的斑竹有介绍这个问题!

|
http://www.qiker.org/jiaocheng/xfocus/%B1%E0%B3%CC%BC%BC%CA%F5/340.html

不错的文章

|
朋友,我们能否共同探讨一下:
我用模块方式给系统添加一个自己定义的系统调用,模块加载进去没问题,可是用一个
用户测试程序测试,它不去执行我的系统调用函数,没有陷入内核中去执行我的系统调用
函数.下面是我的程序.你能否也把你的程序贴出来.希望能和你共同研究这个问题.

#include 
#include 
#include 

#define __NR_pedagogictime 260
_syscall1(int,pedagogictime,struct timeval *,thetime)
int main()
{
struct timeval tv;
pedagogictime(&tv);
printf("tv_sec: %ldn",tv.tv_sec);
printf("tv_usec: %ldn",tv.tv_usec);
printf("em... let me sleep for s seconds!n");
printf("current uid is %ldn",getuid());
sleep(2);
}
#define MODULE
#define __KERNEL__
#define LINUX

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define __NR_pedagogictime 260

#define SCT 0xc030a0f0/*System.map中找到的*/

static int (*anything_saved)(void);

static int sys_pedagogictime(struct timeval *tv)
{
struct timeval ktv;

MOD_INC_USE_COUNT;

do_gettimeofday(&ktv);
if(copy_to_user(tv,&ktv,sizeof(ktv))){
MOD_DEC_USE_COUNT;
return -EFAULT;
}
printk("Pid %ld called sys_gettimeofday().n",(long)current->pid);
MOD_DEC_USE_COUNT;

return 0;
}

int __init init_addsyscall(void)
{

long *sys_call_table;
sys_call_table=(long *)SCT;
anything_saved=(int(*)(void))(sys_call_table[__NR_pedagogictime]);

sys_call_table[__NR_pedagogictime]=(unsigned long)sys_pedagogictime;

return 0;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编写lkm时的内存分配
  • 100分答谢:谁会Linux下的LKM的编程
  • 用LKM写一个文件系统 挂载到系统中方法
  • 我的lkm程序,insmod时提示内核版本不对,怎样才能成功升级内核?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3