我想了解内存分配如何在编译和加载程序的不同阶段工作。内存地址:Linker VS.加载程序
1)编译器和汇编产生代码和数据段开始该地址为0
2)链接器通过存储器位置 与每个符号的定义相关联,然后修改所有的引用重新定位这些部分 到那些符号,以便它们指向这个内存位置。
3)加载程序将程序加载到主内存中,在进程的上下文中,因此,在这一步,分页和所有与内存管理相关的操作完成。
我的问题是两件事:
1)如何可通过与由装载机分配的那些链接指定的地址。我们可以调用链接器地址虚拟地址吗?
2)是否所有的程序具有相同的虚拟地址(即最终被映射到不同的物理地址?)