kernel-module

    5热度

    1回答

    如何在内核模块中设置进程的CPU关联?在用户模式下有一个系统调用sched_setaffinity,但我正在寻找内核模式的等价物。 在Linux内核代码中,还有一个名为sched_setaffinity的函数。它从sys_sched_setaffinity函数调用,该函数由system_call调用。从看起来,这是我想要使用的功能。不过,它与系统调用同名的事实让我有点不安。 但是我们都知道,最好的

    73热度

    1回答

    我知道关于为什么不应该从内核读取/写入文件的所有讨论,而是如何使用/ proc或netlink来做到这一点。无论如何,我想读/写。我也读过 Driving Me Nuts - Things You Never Should Do in the Kernel。 但是,问题是2.6.30不导出sys_read()。而是它包裹在SYSCALL_DEFINE3。所以,如果我在我的模块中使用,我得到以下警告

    5热度

    2回答

    我在写一个内核模块,它依赖于一个现有的内核模块。我从树中构建我的模块(作为外部模块)。 如何声明依赖关系,以便通过depmod识别它?

    13热度

    4回答

    进入我的暑期研究的核心工作。我们希望在特定的RTT计算中对TCP进行修改。我想要做的是将tcp_input.c中的一个函数的分辨率替换为由动态加载的内核模块提供的函数。我认为这会提高我们开发和分发修改的速度。 我感兴趣的函数被声明为静态的,但是我已经用非静态函数重新编译了内核,并通过EXPORT_SYMBOL导出了内核。这意味着该功能现在可以被内核的其他模块/部分访问。我通过“cat/proc/k

    9热度

    3回答

    我想添加一个新的系统调用通过LKM,但我不知道如何做到这一点。也就是说,我知道如果我想添加一个全新的系统调用,我可以查看sys_call_table并找到一个sys_ni_syscall并将其替换,但我很好奇是否有可能实际上将添加到sys_call_table。我意识到它可能是而不是可能,因为它是一个固定大小的数组,但我想知道是否有其他聪明的方法来添加系统调用而不覆盖未使用的系统调用号码。

    16热度

    1回答

    我在读LKMPG(See Section 4.1.4. Unregistering A Device),我不清楚何时使用try_module_get/module_put函数。一些LKMPG的例子使用它们,有些则不。 为了增加混淆,try_module_get在2.6.24源文件中的193个文件中出现了282次,而在Linux Device Drivers (LDD3)和Essential Lin

    4热度

    3回答

    我书面方式一个Linux模块(内核编程),和我真的越来越: “无法处理内核NULL指针引用” 这是什么意思?

    7热度

    2回答

    是否可以编译包含由非内核定义的功能的linux内核(2.6)模块? 例如: kernelmodule.h #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> // printk() // ... #include <openssl/sha.h> // ... 的Makefile obj

    2热度

    3回答

    通常对Linux编程不熟悉。 我想通过共享内存与内核模块进行通信,但无法调用用户应用程序中使用的函数,如shmget(); 我已经安装了kernel-headers和kernel-devel,并且包含 到内核模块源代码,但是头文件不包含任何函数。 是否有在内核中使用共享内存的标准方式? 另外,关于如何在相同的情况下使用套接字的任何提示将有很大的帮助。 使用 发行版:CentOS的5.2 内核:2.

    3热度

    4回答

    我想将用户空间内存的指针传递给内核模块中的函数。我不想用copy_from_user。我读过我应该使用get_user_pages函数。 例如一页。 struct page **pages; pages = kmalloc(1 * sizeof(*pages), GFP_KERNEL); down_read(¤t->mm->mmap_sem); get_user_pages(c