c - Linux内核是如何创建/proc/$pid/maps文件的?

标签 c linux-kernel operating-system kernel system-calls

我正在做一些内存自省(introspection),它要求我知道 proc/$pid/maps 是如何创建的。我对 http://lxr.free-electrons.com/source/fs/proc/base.c 中的代码感到有点困惑在第 2750 行,我注意到此结构中有一个映射定义,但我想知道每个 pid_entry 哪个内核函数创建映射文件。指向内核模块或代码块的链接就足够了。

最佳答案

您对链接做了一些奇怪的事情。

点击几个定义显示文件是按需生成的: https://github.com/torvalds/linux/blob/bcf876870b95592b52519ed4aafcf9d95999bc9c/fs/proc/task_mmu.c#L271

(至少对于常见的 mmu 情况)

常见问题:你为什么要问?

关于c - Linux内核是如何创建/proc/$pid/maps文件的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34279360/

相关文章:

c - 文件可视化 map

linux - 用户内核模块 "not found in directory"?

linux - 在内核为 3.14.1 的 Ubuntu 14.04 中使用 GPIO sysfs

c - 在内核 4.14 中使用 'MSG_ZEROCOPY' 标志和 'SO_ZEROCOPY' 选项发送 buf 的行为比 non_zerocpy 更糟糕

c - debian 发行版上的 RTAI - 不确定为什么这个 C 线程代码(实现一个简单的计数器)会导致 linux 崩溃

c - 从 ether_addr 获取源 MAC 地址

c++ - 用于检查 MySQL 连接性和 InnoDB 插件的 C/C++ 程序

linux - Linux 在编译时是否支持 2MB 页面?

python - 无法获取 __file__ Python 的实际目录

windows - 如何以编程方式获取 vmmap 中显示的信息?