(Translated by https://www.hiragana.jp/)
a.out - 维基百科,自由的百科全书 とべ转到内容ないよう

a.out

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん

a.out
扩展めい
无, .o, .so
开发しゃAT&T
格式かくしき类型进制ぶんけん执行档目的もくてきはこしき

a.out旧版きゅうばん类Unixけいちゅうよう执行档目的もくてきかずきさきらいけい统中てきはこしきてきいちぶんけん格式かくしき,这个名称めいしょうてき意思いし汇编输出

つきかん目前もくぜんだい多數たすう类UnixけいやめあらためようELF格式かくしきさいさいようa.out格式かくしきただし编译链接依然いぜんかいざいよう户未指定していぶん件名けんめい时,はた输出ぶんけんめい为“a.out”。[1]

应用

[编辑]

ざいUNIXだいいちはんちゅう,就出现了给PDP-7PDP-11ようてきa.out格式かくしき[2]これきさき它被UNIX System VなかてきCOFFところだい,而COFFさいきさき也被SVR4なかてきELF格式かくしきところだい

つきかんBSD曾经沿用りょういちだん时间てきa.out格式かくしきただし较新てきBSDけい统都やめきり换到ELF。NetBSD/i386ざい1.5はんちゅう正式せいしきa.outきり换到ELF,FreeBSD/i386则是ざい2.2いた3.0てき转换中切なかぎり换到ELFてき

a.out格式かくしき调试しんいきてき支持しじよし符号ふごうひょう中称ちゅうしょうさくstabsてき特殊とくしゅ项实现的。许多COFFELF变体中也ちゅうやよういたりょうstabs格式かくしき

Linuxざい1.2はんないかくぜん也曾使用しようa.out格式かくしき(实验せいてき1.1.52はんちゅう加入かにゅうりょう对ELFてき支持しじ),ざい此之きさき也被ELFだいりょう[3]Linux所以ゆえん转向ELF,あるおおあるしょういん为在此平だいじょう构建いちa.out格式かくしきてきはこしき库所需的复杂せい过高:いん为Linuxちゅうa.outてきld.so不能ふのうじゅう定位ていいどもとおるはこしき库,所以ゆえん需要じゅよう一个中央机构来注册各个函式库的虚拟地址域。[4]いち些BSD变体ざいLinuxせり转向ELFきさき仍然ようりょう很久てきa.out格式かくしきいん为相于Linux,BSDてきa.outほぼほろさら灵活いち些。[5]よし于a.out格式かくしきてきしょう关代码已经老きゅう缺乏けつぼう维护,而且やめ经几乎没ゆう使用しようa.out格式かくしきてき存在そんざい,5.1はんないかく决定うつりじょしょう应的こうのう支持しじ[6]

MINIX 3仍将a.outさく为二进制文件的格式,ただし其不支持しじきょうとおるはこしき

格式かくしき

[编辑]

a.out执行档通常つうじょう以下いか几种变体いち:OMAGIC、NMAGIC、QMAGICあるZMAGIC。

OMAGIC
OMAGIC格式かくしきざいぶんけん头后ゆう连续だんぼつゆうぶんほんすうすえてきぶん离。也被用作ようさく标文けん格式かくしき
NMAGIC
NMAGIC格式かくしきあずかOMAGICしょうぞうただしかずすえだん现在ぶんほんだん结束きさきてきいち页,且文ほんだん标为ただ读。
ZMAGIC
ZMAGIC格式かくしき加入かにゅうりょう对按需分页的支持しじだい码段すうすえだんてき长度需要じゅよう页宽てき整数せいすうばい
QMAGIC
QMAGIC二进制文件通常被加载在虚拟地址池的底端,よう以通过だん错误获对そらゆびてきかい引用いんようa.out头部あずかぶんほんだんてきだいいち页合并,通常つうじょうかいしょういち页的ないそん
CMAGIC
旧版きゅうばんてきLinux使用しよう此格しきらいそん核心かくしん转储

a.outぶんけん包含ほうがんいたりなな节,顺序如下:

执行头部
包含ほうがんないかくしょう二进制文件加载入内存并执行所需的参数,也包含ほうがん对动态链せっldてきゆび引。仅有ほん节是必须现的。
ぶんほんだん
包含ほうがん运行时被载入ないそんてきつくえ码和しょう关数すえ可能かのうただ读的。
かずすえだん
包含ほうがんやめはつはじめてきすうすえ,总是うつしてき
ぶんほんじゅう定位ていい
包含ほうがん链接编辑ざいごう并二进制文件时修改文本段指针的记录。
かずすえじゅう定位ていい
あずかぶんほんじゅう定位ていいいち节类ただし给数すえだんゆび针用てき
符号ふごうひょう
包含ほうがん链接编辑器用きよう交叉こうさ引用いんよう不同ふどう二进制文件中变量和函式(符号ふごうてき记录。
くしひょう
包含ほうがん对应于符ごうひょうてきくし

まいり

[编辑]

参考さんこう资料

[编辑]
  1. ^ Rupert Wood. What to do with a.out. gcc-help (邮件れつひょう). 2002-04-08 [2007-04-28]. (原始げんし内容ないようそん于2007-02-24). 
  2. ^ Dennis Ritchie. a.out — assembler and link editor output (PDF). Bell Labs. 1971-11-03 [2006-11-24]. (原始げんし内容ないよう (PDF)そん档于2006-12-07). 
  3. ^ Daniel Barlow. The Linux ELF HOWTO (v1.29). 14 July 1996 [2008-03-28]. (原始げんし内容ないようそん档于2004-07-13). 
  4. ^ 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=ゆるがせりゃく (帮助)
  5. ^ BSD Myths: BSD uses the a.out executable format, which is outdated technology. [2007-04-10]. (原始げんし内容ないようそん于2007-04-17). 
  6. ^ 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. 

外部がいぶ链接

[编辑]