在单用户模式下从 linux 内核向用户 space 共享内存

Sharing memory from the linux kernel to user space in single user mode

我有一个分配内存的内核模块,我想与用户进程共享这个内存。在正常模式下,我们只能使用:mmap、/proc、shmem 等来实现。但是在单用户模式下,对于嵌入式设备,难道没有办法共享一个简单的指针吗?

伪 sysfs 文件系统 (/sys) 正是为此目的而设计的(向用户公开内核数据space)。您也可以从用户 space.

写入这些数据结构

查看Greg Kroah-Hartman's Driver Tutorial

阅读SysFS Documentation

"Single user mode" 是用户空间定义的约定。它对内核没有意义;所有相同的规则都适用于 "normal mode".

如果你想从用户空间访问内存——任何内存——你需要以某种方式将该内存映射到进程中。在特殊文件或设备节点上使用 mmap() 是最自然的方式。