在单用户模式下从 linux 内核向用户 space 共享内存
Sharing memory from the linux kernel to user space in single user mode
我有一个分配内存的内核模块,我想与用户进程共享这个内存。在正常模式下,我们只能使用:mmap、/proc、shmem 等来实现。但是在单用户模式下,对于嵌入式设备,难道没有办法共享一个简单的指针吗?
伪 sysfs 文件系统 (/sys
) 正是为此目的而设计的(向用户公开内核数据space)。您也可以从用户 space.
写入这些数据结构
"Single user mode" 是用户空间定义的约定。它对内核没有意义;所有相同的规则都适用于 "normal mode".
如果你想从用户空间访问内存——任何内存——你需要以某种方式将该内存映射到进程中。在特殊文件或设备节点上使用 mmap()
是最自然的方式。
我有一个分配内存的内核模块,我想与用户进程共享这个内存。在正常模式下,我们只能使用:mmap、/proc、shmem 等来实现。但是在单用户模式下,对于嵌入式设备,难道没有办法共享一个简单的指针吗?
伪 sysfs 文件系统 (/sys
) 正是为此目的而设计的(向用户公开内核数据space)。您也可以从用户 space.
"Single user mode" 是用户空间定义的约定。它对内核没有意义;所有相同的规则都适用于 "normal mode".
如果你想从用户空间访问内存——任何内存——你需要以某种方式将该内存映射到进程中。在特殊文件或设备节点上使用 mmap()
是最自然的方式。