专栏名称: 脚本之家
脚本之家(jb51.net)是国内专业的网站建设资源、脚本编程学习类网站,以后将为大家分享更多有用的信息,希望大家多多支持宣传。
目录
今天看啥  ›  专栏  ›  脚本之家

为什么链接器能“预言”程序运行时地址?

脚本之家  · 公众号  ·  · 2025-07-20 17:00
    

主要观点总结

本文主要介绍了链接器是如何在程序运行前确定函数和全局变量的内存地址的,实际上这些地址在编译时就已经确定了,准确来说是在链接时确定的。文章解释了链接器处理的是虚拟内存地址,现代操作系统为每个进程提供了一个独享的虚拟地址空间。链接器根据链接脚本决定各个段的布局,计算并填充最终虚拟地址。程序运行后由加载器加载到操作系统分配的虚拟地址空间中,然后由操作系统分配物理内存。但程序本身不需要关心其运行在哪个物理内存地址上。

关键观点总结

关键观点1: 链接器处理的是虚拟内存地址。

现代操作系统为每个进程提供了独享的虚拟地址空间,链接器在这个虚拟地址空间内进行地址分配。

关键观点2: 链接器根据链接脚本决定各个段的布局。

链接脚本明确了各个段的排列顺序、起始虚拟内存地址(VMA)和段之间的对齐方式。

关键观点3: 程序运行后的物理内存地址由操作系统分配。

操作系统将可执行程序加载到虚拟地址空间中,并在程序真正访问虚拟内存时分配物理内存。

关键观点4: 程序不需要关心其运行在哪个物理内存地址上。

程序只需在其虚拟地址空间内运行,物理内存地址的分配和管理由操作系统和硬件负责。


免责声明

免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
推荐产品:   推荐产品
文章地址: 访问文章快照