【问题标题】:opposite of memory-backed file?与内存支持文件相反?
【发布时间】:2012-09-22 18:55:45
【问题描述】:

内存支持文件允许应用程序将文件视为主内存。 我想知道 Linux 中是否有类似的机制允许我像访问文件一样访问一系列内存,即通过文件路径和 read() write() 系统调用。

如果重要的话,我想在内存中运行带有 system.img 和 userdata.img 的 Android 模拟器以加快速度。因此,如果有人能告诉我如何告诉 android-qemu 挂载到不同的(内存中)分区,那也可以。

谢谢

【问题讨论】:

  • 您的意思是memory mapped 文件吗?
  • 没有。内存映射文件像内存一样被访问,但我想像文件一样访问内存
  • RAM 磁盘差不多就是这样。
  • 其实你想要memfd,man7.org/linux/man-pages/man2/memfd_create.2.html(记住这是一个相对较新的界面)

标签: android linux file-io operating-system mmap


【解决方案1】:

【讨论】:

  • 这就是我要找的!谢谢!
  • 我想如果我想要物理内存,我需要 ramfs 或 ramdisk。但是您的回答确实指出了我在哪里寻找。
  • ramfs 必须小心使用 - 您可以轻松耗尽所有 RAM 并杀死主机。 tmpfs 只要您在积极使用它,就会将文件(或您最常使用的位)保留在 RAM 中,但如果您不理会它,您偶尔可能会因页面错误而从磁盘中检索它而付出代价有点或具有更高优先级的东西需要物理RAM。
【解决方案2】:

你可以打开/proc/<pid>/mem访问任意进程的内存...

【讨论】:

  • 让我在这里澄清一下。我不想访问任何进程的虚拟地址空间,我想分配一个应用程序将其视为文件的物理内存范围,并将对该“文件”的读/写调用转换为内存访问,以便我可以得到快速 I/O
  • 但是这个答案也有帮助。现在至少我知道如果操作系统不支持这个,我可以继续复制 /proid/pid 代码并自己实现它。
猜你喜欢
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 2015-09-14
  • 2011-04-03
  • 1970-01-01
  • 2011-03-26
  • 2014-11-10
  • 2013-10-20
相关资源
最近更新 更多