gpt4 book ai didi

c - 如何在 linux 上将两个虚拟地址映射到同一物理内存上?

转载 作者:IT王子 更新时间:2023-10-29 00:50:27 26 4
gpt4 key购买 nike

我面临着一个非常棘手的问题。我试图让 2 个虚拟内存区域指向相同的物理内存。关键是在不同的内存区域有不同的页面保护参数。

在这个论坛上,用户似乎有一个解决方案,但似乎有点老套,而且很明显可以在性能方面做得更好: http://www.linuxforums.org/forum/programming-scripting/19491-map-two-virtual-memory-addres-same-physical-page.html

因为我面临同样的问题,我想在这里试一试,看看是否有人有更好的主意。不要害怕提及引擎盖背后的肮脏细节,这就是这个问题的目的。

提前致谢。

最佳答案

从 Linux 内核 3.17(2014 年 10 月发布)开始,您可以使用 memfd_create系统调用以创建由匿名内存支持的文件描述符。然后多次映射同一区域,如上述答案中所述。

请注意,memfd_create 系统调用的 glibc 包装器已添加到 glibc 2.27(2018 年 2 月发布)中。 glibc manual还描述了返回的描述符如何用于创建到同一底层内存的多个映射。

关于c - 如何在 linux 上将两个虚拟地址映射到同一物理内存上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com