编译时存储在数据段中的变量在执行c程序时如何映射到虚拟内存

编译时存储在数据段中的变量在执行c程序时如何映射到虚拟内存,c,C,我试图理解(C程序的)可执行文件在执行时是如何映射到虚拟内存的。我在互联网上读到,在编译阶段,将创建不同的段(如数据段、代码段、bss),并将变量放置在这些段中。这些将如何显示在可执行文件中。这些段是否只有偏移地址 这些段在执行时是否仍然存在?如果存在,这些段在执行时将如何映射到虚拟内存?有谁能给我解释一下这些分段映射的完整过程吗?具体细节因平台而异。下面是一个关于Linux的简单讨论:

我试图理解(C程序的)可执行文件在执行时是如何映射到虚拟内存的。我在互联网上读到,在编译阶段,将创建不同的段(如数据段、代码段、bss),并将变量放置在这些段中。这些将如何显示在可执行文件中。这些段是否只有偏移地址


这些段在执行时是否仍然存在?如果存在,这些段在执行时将如何映射到虚拟内存?有谁能给我解释一下这些分段映射的完整过程吗?

具体细节因平台而异。下面是一个关于Linux的简单讨论: