(深入理解计算机系统)编译,链接和装载
编译连接
目标文件的格式
可重定位文件:
包含代码和数据
可被用来链接成执行文件或者共享目标文件
linux(.o) windows(.obj)
可执行文件:
包含可以执行的程序
系统可以直接执行的文件
linux (ELF文件,无后缀) windows (.exe)
共享目标文件:
包含代码和数据
跟可重定位文件和共享目标文件链接,产生新的目标文件
动态连接器将共享目标文件与可执行文件结合,作为进程映像的一部分来运行
linux(.so) windows (.DLL)
核心转储文件
Linux(core dump)
目标文件的具体内容
file header
目标文件头
code section
程序指令(.code /.text)
存放程序代码程序
data section
程序数据(.data /.bss)
.data段 初始化的全局和局部静态变量
.bss段 未初始化的全局和局部静态变量
.bss(block started by symbol)符号预留块,没有内容不占据空间
othe section
还有可能包含的其他段,例 bank data .ect
程序指令和数据分开存放的优点?3点。
【最是那一低头的温柔】
【好像水莲花不胜凉风的娇羞】