我想在Linux内核中添加读写数据的函数。
程序A调用uf_obj_add(param, param, param),它将信息存储在内存中。
程序B也做同样的事情。
我只需要malloc()内存,还是更难呢?
在uf_obj_add()写入的地方,uf_obj_get()如何访问内存?
在哪里存储内存位置信息,以便两个函数可以访问相同的数据?
发布于 2016-03-03 01:15:26
正如评论员对你的问题所指出的那样,在用户空间中实现这一点可能要安全得多。但是,如果您坚持通过修改内核代码来实现这一点,那么您可以采用的一种方法是实现一个新的设备驱动程序,该驱动程序具有读写等功能,您可以根据需要实现这些功能,以便让您的进程访问一些内存空间。然后,您的进程可以像您所描述的那样,通过读取和写入相同的空间或多或少地工作,就像它们从常规文件读取/写入常规文件一样。
不过,我建议在深入研究内核代码之前,要阅读大量的资料。有关设备驱动程序的一个很好的资源是Linux Device Drivers。您可能会在scull目录下找到您要查找的内容。
同样,正如评论员对您的问题所指出的那样,我认为您不应该立即开始更新内核空间的执行。但是,出于教育目的,scull可以作为一个很好的起点来阅读内核代码,并了解如何获得与您所描述的结果类似的结果。
https://stackoverflow.com/questions/35747317
复制相似问题