我知道mmap()允许应用程序将文件映射到内存中,因此内存地址和文件中的单词之间存在一对一的对应关系。
但我的问题是,如果文件是由设备驱动程序创建的非常规文件怎么办?据我所知,一些非常规文件是mmap可映射的,有些则不是。从编程的角度来看,这意味着什么?如果我希望我的非常规文件是mmap-able,我应该怎么做?
发布于 2014-01-21 19:08:54
我在Linux-kernel-module上工作过,在其中我实现了mmap函数指针(结构file_operations)。此模块将在/dev/目录中创建一个设备条目。现在,我的用户空间应用程序将使用" open“打开此条目,并进行mmap系统调用。最终,在我嵌入的Linux-Kernel-module中,mmap函数将被调用,并进行已实现的处理,然后返回到用户空间。
这只是一个示例,用于表示用户空间向操作系统(内核)请求的服务。当用户想要访问硬件或想要从内核请求服务(如将物理内存映射到用户虚拟地址空间)时,它可以使用由驱动程序在/dev/或/sys/或/proc/等中创建的条目来实现。这些文件可以称为内核的“虚拟接口”。
https://stackoverflow.com/questions/21255727
复制相似问题