如何从库中获取地址信息以在所有进程之间共享?
在了解Linux内核第3版中,它说:
我对此感兴趣,想要在C中编写一个小程序来验证,给出两个pid作为输入,例如两个gedit进程,然后从页面帧中获取要共享的地址信息.有谁知道怎么做?从那本书中,我认为来自两个或更多gedit进程的bss段和文本段地址是相同的,这是正确的吗? 最佳答案 你的gedit(或其他)的text和bss部分不是具有相同地址的文本和bss部分,而是libc.so共享库的内容 – 以及两个gedit进程使用的所有其他共享库. 正如引用的文本所说,这允许共享库是一个副本,这通常是共享库的主要好处. bss通常不共享 – 因为这是每个流程数据.在Linux中,运行相同可执行文件的两个进程的文本部分将共享相同的代码. 不幸的是,证明这一点的方法是查看进程内页面的物理映射(进程A中的地址X的页面位于物理地址Y,进程B中的地址X的页面也是物理地址Y),以及据我所知,这并不容易在OS内核内部搞定. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- LINUX实操:Linux下网络接口配置--Bonding
- 用于Python脚本的Desktop Launcher以错误的路径启动程序(Li
- linux如何同时32位和64位?或者是glibc处理的东西?
- linux – 如何在* nix上查找/ grep目录名与“x”匹配而不是
- 如果我捕获SIGSEGV并且信号处理程序导致另一个SIGSEGV会发生
- linux – GRUB stage 1.5的代码驻留在磁盘上的位置是什么?
- linux – 如何在屏幕上完全禁用铃声(视觉和音频)
- linux – 套接字选项SO_SNDLOWAT的目的是什么
- linux – 什么是活动内存和非活动内存[已关闭]
- LINUX实战:VMware Fusion DHCP方式下如何指定虚拟机IP地址