(深入理解计算机系统)编译,链接和装载

计算机系统

编译连接

目标文件的格式

可重定位文件:

包含代码和数据  
可被用来链接成执行文件或者共享目标文件  
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点。

posted @ 2016-07-24 15:19  跑马灯的忧伤  阅读(418)  评论(0编辑  收藏  举报