c - linux 内核中的 mmap() 用于访问未映射的内存

标签 c linux memory memory-management linux-kernel

我正在尝试使用 linux-kernel 中提供的 mamp() 功能。 当我们在用户空间调用 mmap() 时,我们尝试将用户空间进程的虚拟内存区域映射到内核空间中的内存。

内核中 mamp() 的定义是在我的内核模块中完成的,它尝试在页面中分配一些内存并在 mmap 系统调用期间映射它。该内核空间内存的内存内容可以由该模块填充。

我想问的问题是,在内存映射之后,用户空间进程可以直接访问映射内存而无需任何额外的内核重载,因此不会有像 read() 这样的系统调用 但是如果内存(在内核空间内分配并映射到内核空间)包含指向在内核空间内分配的其他内存(未映射)的指针,那么用户空间进程是否能够在以下帮助下访问这个未映射的内存映射内存的内容是指向此未映射内存的指针。

最佳答案

不,用户空间不能在映射内存中追踪指向未映射内核内存的指针。

关于c - linux 内核中的 mmap() 用于访问未映射的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496263/

相关文章:

Linux 命令行与 Linux 命令管道

php - 上传文件上的 Finfo_file 以确定 mime 类型

memory - Powershell 内存使用情况

PHP CPU 和内存使用情况

c++ - 以二进制和文本模式编写的文件之间的区别

c - 在赋值中使用后缀/后缀运算符

c - 为什么 glibc 的 csu/init-first.c 中的 _init 在 _start 之前被调用,即使 _start 是 ELF 入口点?

c - 如果我在 parent 和 child 中 fork 和 exec 会发生什么?

c - c 中的 fflush(stdout)

php - Magento 性能问题