Linux:用于非常规文件的mmap()

问题描述 投票:2回答:1

据我所知,mmap()允许应用程序将文件映射到内存中,因此内存地址与文件中的单词之间存在一对一的对应关系。

但我的问题是,如果文件是由设备驱动程序创建的非常规文件,该怎么办?据我所知,一些非常规文件是mmap-able,有些则不是。从编程的角度来看,这意味着什么?如果我希望我的非常规文件能够mmap,我该怎么办?

linux linux-kernel mmap
1个回答
2
投票

我曾经在一个Linux内核模块上工作,我在其中实现了mmap函数指针(struct file_operations)。该模块将在/ dev /目录中创建设备条目。现在我的用户空间应用程序将使用“打开”打开此条目,并将进行mmap系统调用。最终在Linux-Kernel-module内部,我将调用mmap函数并执行已实现的处理并返回用户空间。

这只是表示用户空间向OS(内核)请求的服务的示例。当用户想要访问硬件或想要从内核请求服务(例如将物理内存映射到用户虚拟地址空间)时,它可以使用/ dev /或/ sys /中的驱动程序创建的条目来执行此操作或/ proc / etc.这些文件可以称为内核的“虚拟接口”。

© www.soinside.com 2019 - 2024. All rights reserved.