【发布时间】:2016-04-18 22:26:16
【问题描述】:
我刚刚在 GNU Libc 手册中的 exec- 函数描述中看到了“进程映像”。它和进程的地址空间是同一个概念吗?谢谢。
【问题讨论】:
我刚刚在 GNU Libc 手册中的 exec- 函数描述中看到了“进程映像”。它和进程的地址空间是同一个概念吗?谢谢。
【问题讨论】:
我会说它们是相关的,但并不完全相同。
进程映像是您从可执行程序中获得并加载到内存中的所有内容,以及在加载时添加或修改的所有内容。
地址空间是它的所有虚拟地址,以及其中的任何内容。
相同的东西 - 几乎 - 但不同的观点。
很多时候,当我关心地址空间时,我只想知道某个特定地址是否对该进程有效,和/或当前可用的任何地址。也许我关心诸如“这个当前是常驻的;那个已经被调出;另一个在第一次访问时将被初始化为零”之类的细节。但是我真的不关心内容,也不关心text/data/bss/heap/stack/mmap等细节。
当我关心进程映像时,我非常关心来自可执行文件的内容以及正确设置它。如果程序已经开始运行,我关心的是它的寄存器,而不仅仅是它的内存。
【讨论】:
一个过程包括:
有时称为过程映像的部分包含两者。
一个 exec- 函数将:
过程映像实际上与过程相同。
【讨论】: