当前位置: 首页 > 面试题库 >

在/ proc / pid / mem上的mmap

党建义
2023-03-14
问题内容

有没有人成功地使用Linux内核2.6 mmap’ing / proc / pid /
mem文件?我收到ENODEV(无此类设备)错误。我的电话看起来像这样:

char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset);

而且我在调试时通过查看/ proc / pid /
maps文件进行了验证,当执行到达此调用时,offset的值等于堆栈顶部减去PAGE_SIZE的值。我还用ptrace验证了mmap将errno设置为ENODEV。


问题答案:

proc_mem_operations/usr/src/linux/fs/proc/base.c/proc/.../mem不支持mmap



 类似资料:
  • 问题内容: 我正在努力弄清标题中提到的两个文件。我查了一下是什么。但是,我无法理解如何从他们那里提取有用的信息(或者我只是以错误的方式来对待)。 让我解释一下:页面映射是一个相当新的“功能”伪文件,其中包含分配给当前[pid]的虚拟页面的物理框架信息。也就是说,给定一个从地址x开始的虚拟页面,比如说“ vas”代表虚拟地址开始,我可以使用vas为页面地图文件建立索引,以获取映射的物理页面框架的64

  • 问题内容: 我对/ proc / pid / smaps中的pss列感到困惑,因此我编写了一个程序对其进行测试: 在这里,我发现pss等于Private_Dirty,但是我想知道为什么。 顺便说一句:是否有任何详细的文档? 问题答案: 从wnn.net报价 进程的“比例集大小”(PSS)是它在内存中具有的页面数,其中每个页面除以共享它的进程数。因此,如果一个进程自身拥有1000页,并且与另一个进程

  • 问题内容: 我试图破译如何使用/ proc / pid / pagemap来获取给定页面集的物理地址。假设从/ proc / pid / maps中获得了与堆相对应的虚拟地址afa2d000-afa42000。我的问题是如何使用此信息遍历页面地图文件并找到对应于地址afa2d000-afa42000的物理页面框架。 / proc / pid / pagemap条目为二进制格式。有什么工具可以帮助解

  • 问题内容: 我正在为Munin创建一个插件,以监视命名进程的统计信息。信息来源之一是。但是我很难找出/ 和/ 之间的区别。 它们不一样,因为它们提供不同的值。它们代表什么? 问题答案: 尽管proc联机帮助页令人遗憾地落后(大多数与cookie- cutter用户空间开发无关的联机帮助页/文档也是如此),但幸运的是,这些资料已在Linux内核源代码下的完全记录了下来。以下是相关的位:

  • 问题内容: 对于具有非常长的类路径的Java应用程序,使用ps时,看不到arg列表末尾附近指定的主类。我认为这源于我的Ubuntu系统对/ proc / pid / cmdline的大小限制。如何增加此限制? 问题答案: 您无法动态更改,限制已在内核中硬编码为fs / proc / base.c中的PAGE_SIZE:

  • X-Mem 是可扩展的内存基准测试工具,它可以用于研究内存结构吞吐量、延迟和功率。 特性 灵活性:易于重新配置,以适应不同的测试组合。 工作集以4KB的增量递增,从而可以缓存到主内存级别的基准测试。 NUMA支持。 多线程支持。 大页面支持。 可扩展性:通过C ++ 11面向对象原理的模块化。 支持快速添加新的基准内核例程。 例如:流三合会算法,错误共享的影响等,可能需要进行很小的更改。 跨平台: