Memory management 如何使用mmap在用户空间和内核之间共享内存,并且数据不受文件支持
如何在没有文件支持的用户空间和内核之间共享内存?如果mmap是使用MAP_ANON完成的,那么如何与内核空间共享它 我有一个数据结构Memory management 如何使用mmap在用户空间和内核之间共享内存,并且数据不受文件支持,memory-management,linux-kernel,kernel,linux-device-driver,kernel-module,Memory Management,Linux Kernel,Kernel,Linux Device Driver,Kernel Module,如何在没有文件支持的用户空间和内核之间共享内存?如果mmap是使用MAP_ANON完成的,那么如何与内核空间共享它 我有一个数据结构 struct data { int x; char* y; }; 此数据结构由用户进程和内核更新。如果我使用mmap,我没有备份的文件。我该怎么做呢。此外,我不能使用copy_from_user,因为内核和用户进程会定期更新结构。请让我知道我可以向您推荐类似的产品,但我不确定这是否是您所需要的:我已经在PowerPC上开发了此产品 限制内核可以看到的内存(比如说
struct data {
int x;
char* y;
};
此数据结构由用户进程和内核更新。如果我使用mmap,我没有备份的文件。我该怎么做呢。此外,我不能使用copy_from_user,因为内核和用户进程会定期更新结构。请让我知道我可以向您推荐类似的产品,但我不确定这是否是您所需要的:我已经在PowerPC上开发了此产品
uio的主要目标是与用户应用程序共享物理内存,快速开发用户空间驱动程序。但是,如果您使用uio_mem_逻辑配置uio_mem_结构,您也可以与它共享内核分配的内存。如果您控制访问此类数据结构的内核代码。例如,您可以更新该代码以在debugfs中创建字符设备或文件,并使用该文件来备份mmapped内存。另请参见:请注意,如果要在用户空间和内核空间之间传递字符串(如该结构中的
char*y
),还需要将字符串本身(不仅仅是指向它的指针)存储在用户空间和内核空间共享的内存中的某个位置。或者,依赖于复制到用户/从用户复制。可能重复