问题标签 [linux-kernel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - linux内核源代码位置
我正在通过 VMware工作Windows
和运行。fedora
默认情况下,内核源代码树应该在usr/src/
目录中。相反,我只能找到一个名为 kernels 的空目录。那里缺少实际的源代码。
浏览时我认为它可能在其他目录中,例如/boot
. 但我在那里也找不到源代码树。
我需要修改我应该能够访问这些源代码的系统调用表。
java - 如何使用 Java 程序加载/卸载 Linux 内核模块?
我正在寻找从我的 Java 程序中加载和卸载一个 linux 内核模块。
我最初尝试通过使用 ProcessBuilder 运行命令来执行此操作,但是由于程序没有 root 访问权限,它失败了。以 root 身份运行我的程序也会产生相同的问题,因为它是一个需要 root 访问权限的不同进程。
那么如何在我的程序中获得 root 访问权限,以便允许运行 insmod 和 rmmod。到目前为止,这就是它的样子。
linux - linux内核中的PTE结构
我一直在尝试在 linux 源代码中查找与禁用 PAE 的 x86 系统上的 PTE 相对应的结构/联合。到目前为止,我在 arch/x86/include/asm/page_32.h 中只找到了以下内容
我现在有点困惑,因为我面前打开了英特尔参考手册第 3A 卷,并且该联合中的任何内容都与手册中解释的 PTE 中存在的十几个奇数字段相对应。
这可能是一个微不足道的问题,但对我来说,它更像是理解 linux 内核内存管理过程中的绊脚石。
编辑:我有 2.6.29 源
multithreading - Linux 内核线程之间的通信
我正在将一个应用程序/PCI 驱动程序从 vxWorks 移植到 Linux,如果可能的话,我希望保持相同的架构。当前驱动程序有 2 个使用消息队列相互通信的任务(线程)。是否有机制在内核线程之间进行通信?消息队列用于传递缓冲区地址和大小信息,因此任务可以使用 DMA 移动大量数据。
linux-kernel - 遍历linux内核中的task_struct->children
我正在尝试遍历linux内核中的task_struct的孩子并从孩子那里获取信息。我对所有信息都有疑问,所以为了简单起见,让我们将其保留在获取 pid 上。
这是我的代码的相关部分。
我认为问题出在 list_entry 但我不知道如何解决它,我能找到的所有示例似乎都以相同的方式调用它。
这应该打印出所有子 PID,而不是我总是得到相同的数字 -17.... 它大约是 10^9 或 10^11。
有谁可以帮我离开这里吗?编译大约需要 30 分钟,所以尝试记录不同的东西并不是一个真正的选择。
linux - 从 pid 获取 _complete_ 进程名称
我在一个内核模块中,我想从给定的 pid 中获得整个进程名称。确切地说:我想要 /proc/PID/cmdline 中的行。
问题是它只有 15 个字节长,如果程序手动或通过 setproctitle(3)task_struct->comm[]
更改它,则无法处理...argv[]
有任何想法吗?:)
linux-kernel - 您在 Linux 字符驱动程序中将用户上下文存储在哪里?
自从我研究 Linux 内核模块以来已经有一段时间了,我似乎记得在你的 open() 开放实现中有一个存储上下文的地方,它可以在你的其他 file_operations 中使用......例如,如果我想要为了维护与打开我的设备节点的每个人相关的一些状态,如果传递给所有 file_operations 函数的 inode 结构或文件结构有一个我可以填充的 void*,我可以很容易地支持任意数量的用户...... 。 这可能吗?
c - 为 Linux 内核开发设置 Netbeans/Eclipse
我正在做一些 Linux 内核开发,并且正在尝试使用 Netbeans。尽管声明支持基于 Make 的 C 项目,但我无法创建功能齐全的 Netbeans 项目。尽管编译时让 Netbeans 分析了一个使用完整调试信息编译的内核二进制文件。问题包括:
- 文件被错误地排除:一些文件在项目中被错误地显示为灰色,这意味着 Netbeans 不认为它们应该包含在项目中,而实际上它们已编译到内核中。主要问题是 Netbeans 会遗漏这些文件中存在的任何定义,例如数据结构和函数,还会遗漏宏定义。
- 找不到定义:不言自明 - 通常,Netbeans 找不到某些东西的定义。这部分是上述问题的结果。
- 找不到头文件:不言自明
我想知道是否有人在为 Linux 内核开发设置 Netbeans 方面取得了成功,如果是,他们使用了哪些设置。最终,我希望 Netbeans 能够解析 Makefile(首选)或从二进制文件中提取调试信息(不太理想,因为这会显着减慢编译速度),并自动确定哪些文件被实际编译,哪些宏实际上是定义的。然后,基于此,我希望能够找到任何数据结构、变量、函数等的定义并具有完整的自动完成功能。
让我用一些观点来作为这个问题的序言:
- 我对涉及 Vim/Emacs 的解决方案不感兴趣。我知道有些人喜欢他们,但我不是其中之一。
- 正如标题所暗示的,我也很高兴知道如何设置 Eclipse 来做我需要的事情
- 虽然我更喜欢完美的覆盖范围,但只漏掉百万分之一的定义显然没问题
SO有用的“相关问题”功能告诉我以下问题是相关的:https ://stackoverflow.com/questions/149321/what-ide-would-be-good-for-linux-kernel-driver-development 。阅读后,问题更多的是 IDE 之间的比较,而我正在寻找如何设置特定的 IDE。即便如此,用户 Wade Mealing 似乎在使用 Eclipse 进行此类开发方面具有一定的专业知识,因此我当然会感谢他(当然还有您的所有)的回答。
干杯
linux-kernel - CONFIG_ASYNC_XOR 通过 menuconfig/gconfig 不可见
我使用的是 linux 内核版本 2.6.26.8,我需要使用 async_XXX(async_xor、async_memcpy 等)API。所以我需要用我的内核构建 ASYNC_XXX 模块。但是我无法通过安全选项下的 menuconfig 或 gconfig 看到与 ASYNC_XOR 或 ASYNC_MEMCPY 等相关的配置选项。
在 gconfig 中,如果我选择显示所有选项,我可以在“安全选项”下看到这些配置选项,但我无法选择它们。
我不确定这是因为我的配置文件中缺少一些先决条件 CONFIG 选项还是其他原因。我可以直接在配置文件中手动添加这些选项,但我想确保它不会有任何副作用。
我在此处发布我的工作 .config 文件的安全选项部分...
#
安全选项
#
未设置 CONFIG_KEYS
未设置 CONFIG_SECURITY
未设置 CONFIG_SECURITY_FILE_CAPABILITIES
CONFIG_CRYPTO=y
提前谢谢你。
问候, 维卡什·库马尔
linux - 编译linux内核时出错
我试图编译 linux 内核,但遇到了一些错误。在运行顶级 Makefile 时,我收到以下错误:-
在构建之前,我配置了使用 make oldconfig
似乎错误日志中的文件应该在配置期间生成。但不知何故,它们没有被生成,因此错误。搜索了网络,但仍然无法修复错误。我对内核编程很陌生。任何帮助将不胜感激。
谢谢。