zoukankan      html  css  js  c++  java
  • (深入理解计算机系统)编译,链接和装载

    计算机系统

    编译连接

    目标文件的格式

    可重定位文件:

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

  • 相关阅读:
    Codevs 1283 等差子序列
    Codevs 1282 约瑟夫问题
    Codevs 1228 苹果树
    Codevs 1191 数轴染色
    洛谷P1080 国王游戏
    Codevs 1523 地精部落
    2014-7-17 NOIP模拟赛
    Codevs 3409 搬运礼物
    Codevs 1425 最长公共子串
    TyvjP1863 [Poetize I]黑魔法师之门(2014-8-27)
  • 原文地址:https://www.cnblogs.com/yanghong-hnu/p/5700847.html
Copyright © 2011-2022 走看看