a.out
扩展 |
无, .o, .so |
---|---|
开发 | AT&T |
a.out
应用
[编辑]a.out
Linux
MINIX 3仍将a.out
格式
[编辑]a.out执行档
- OMAGIC
- OMAGIC
格式 在 文 件 头后有 连续段 ,没 有 文 本 和 数 据 的 分 离。也被用作 目 标文件 格式 。 - NMAGIC
- NMAGIC
格式 与 OMAGIC相 像 ,但 数 据 段 出 现在文 本 段 结束后 的 下 一 页,且文本 段 被 标为只 读。 - ZMAGIC
- ZMAGIC
格式 加入 了 对按需分页的支持 ,代 码段和 数 据 段 的 长度需要 是 页宽的 整数 倍 。 - QMAGIC
- QMAGIC二进制文件通常被加载在虚拟地址池的底端,
用 以通过段 错误捕 获对空 指 针的 解 引用 。a.out头部与 文 本 段 的 第 一 页合并,通常 会 省 下 一 页的内 存 。 - CMAGIC
旧版 的 Linux使用 此格式 来 存 放 核心 转储。
a.out
- 执行头部
包含 内 核 将 二进制文件加载入内存并执行所需的参数,也包含 对动态链接 器 ld的 指 引。仅有本 节是必须出 现的。文 本 段 包含 运行时被载入内 存 的 机 器 码和相 关数据 ,可能 是 只 读的。数 据 段 包含 已 初 始 化 的 数 据 ,总是可 写 的 。文 本 重 定位 包含 链接编辑器 在 合 并二进制文件时修改文本段指针的记录。数 据 重 定位 与 文 本 重 定位 一 节类似 ,但 是 给数据 段 指 针用的 。符号 表 包含 链接编辑器用 于交叉 引用 不同 二进制文件中变量和函式(符号 )的 记录。字 符 串 表 包含 对应于符号 表 的 字 符 串 。
参 见
[编辑]- Portable Executable
- ELF
- Vasm,一个自由的汇编器
参考 资料
[编辑]- ^ Rupert Wood. What to do with a.out. gcc-help (邮件
列 表 ). 2002-04-08 [2007-04-28]. (原始 内容 存 档于2007-02-24). - ^ Dennis Ritchie. a.out — assembler and link editor output (PDF). Bell Labs. 1971-11-03 [2006-11-24]. (
原始 内容 (PDF)存 档于2006-12-07). - ^ Daniel Barlow. The Linux ELF HOWTO (v1.29). 14 July 1996 [2008-03-28]. (
原始 内容 存 档于2004-07-13). - ^ Ulrich Drepper. How To Write Shared Libraries (PDF). 4.0. 2006-08-20 [2007-06-20]. (
原始 内容 (PDF)存 档于2007-06-16).When introducing shared libraries certain design decisions had to be made to work in the limitations of a.out. (...) For all these reasons and more, Linux converted early on to using ELF (Executable Linkage Format) as the binary format.
|section=
被 忽 略 (帮助) - ^ BSD Myths: BSD uses the a.out executable format, which is outdated technology. [2007-04-10]. (
原始 内容 存 档于2007-04-17). - ^ Borislav Petkov. x86: Deprecate a.out support. 5 March 2019 [5 March 2019]. (
原始 内容 存 档于2020-09-19).Linux supports ELF binaries for ~25 years now. a.out coredumping has bitrotten quite significantly and would need some fixing to get it into shape again but considering how even the toolchains cannot create a.out executables in its default configuration, let's deprecate a.out support and remove it a couple of releases later, instead.