相关疑难解决方法(0)

如何从内核空间调用Linux系统调用?

我正在移植为Linux 2.4编写的linux内核模块,以便与Linux 2.6一起使用.在代码中使用了一些通过syscallN()宏声明并包含在set_fs()调用中的系统调用.如何在Linux 2.6中仍然使用那些不存在这些宏的sycall?

我知道从内核空间使用系统调用是很糟糕的,并且syscallN()在大多数平台上都会破坏宏.任何合理的方式来代替getuid,geteuid,mknod,chown,unlink,sched_yield在内核空间系统调用表示赞赏.

system-calls linux-kernel

5
推荐指数
1
解决办法
3219
查看次数

如何在编写Linux内核模块时获取userID

这是我的内核模块中的函数,我在后面的阶段使用insmod命令插入make.我正在努力 goldfish (2.6.29)

asmlinkage long our_sys_read(unsigned int fd, char  *buf, size_t count)
{
      printk("------->> our_sys_read getuid() ---------- %d\n", getuid());

      return original_call_read(fd,buf,count);
}
Run Code Online (Sandbox Code Playgroud)

我想捕获系统调用并找出哪些用户进行了这些系统调用.但是当我运行'make'时,它会抛出我的错误.

/home/mohsin/LKM/trapcall.c:245: error: implicit declaration of function 'getuid'
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

c linux-kernel

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

linux-kernel ×2

c ×1

system-calls ×1