首页 > 解决方案 > Linux 内核 - 读取/写入文件

问题描述

我正在研究需要检索一组特定信息并将其写入文件的 LKM。我查找了这样做的常用方法,但找不到适用于 Linux 4.x 的方法。我还发现可以从内存中检索系统调用并有效地调用它们。

正如我发现目前没有更好的方法,如果可以找到系统调用表,并以这种方式调用openread/writeclose ,我会感兴趣。

标签: clinuxlinux-kernel

解决方案


在大多数情况下,强烈建议不要这样做。

https://www.linuxjournal.com/article/8110对我来说是一本非常好的读物,我第一次认为我也必须这样做。

然而,在 Linux 内核中,从文件中读取配置信息的数据被认为是被禁止的。这是由于如果开发人员尝试这样做可能会导致大量不同的问题。

实际上,这可以通过内核内部的系统调用来实现,但通常也不鼓励从内核内部调用系统调用的做法。它们被设计为用户空间应用程序向内核询问事情的接口,而不是让内核让自己工作的接口。

你想从内核中操作什么样的文件?如果您要操作的文件类型是由 proc 文件系统或 sysfs 文件系统或 dev 文件系统提供的,您可以在内核中修改文件的内容(因为内核将这些内容提供给用户空间本身)-这不应该通过文件操作调用来完成。如果它是一个普通的用户空间文件,你几乎不希望内核能够修改它。

如果您提供更多细节,我很想听听他们的意见,但这通常是个坏主意。


推荐阅读