编辑“︁
A.out
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 应用 == 在UNIX第一版中,就出现了给[[PDP-7]]和[[PDP-11]]用的''a.out''格式。<ref>{{cite manual | title = a.out — assembler and link editor output | author = [[Dennis Ritchie]] | date = 1971-11-03 | url = http://cm.bell-labs.com/cm/cs/who/dmr/man51.pdf | format = PDF | publisher = Bell Labs | accessdate = 2006-11-24 | deadurl = yes | archiveurl = https://web.archive.org/web/20061207011324/http://cm.bell-labs.com/cm/cs/who/dmr/man51.pdf | archivedate = 2006-12-07 }}</ref>之后它被[[UNIX System V]]中的[[COFF]]所取代,而COFF最后也被[[SVR4]]中的[[ELF格式]]所取代。 尽管[[BSD]]曾经沿用了一段时间的''a.out''格式,但较新的BSD系统都已切换到ELF。[[NetBSD|NetBSD/i386]]在1.5版中正式从''a.out''切换到ELF,[[FreeBSD|FreeBSD/i386]]则是在2.2到3.0的转换中切换到ELF的。 ''a.out''格式对[[调试]]信息的支持是由符号表中称作“[[stabs]]”的特殊项实现的。许多[[COFF]]和[[可執行與可鏈接格式|ELF]]变体中也用到了stabs格式。 [[Linux]]在1.2版内核之前也曾使用''a.out''格式(实验性的1.1.52版中加入了对ELF的支持),在此之后也被ELF取代了。 <ref>{{cite web |url=http://www.ibiblio.org/pub/historic-linux/distributions/slackware/3.9/docs/ELF-HOWTO |title=The Linux ELF HOWTO (v1.29) |author=Daniel Barlow |date=14 July 1996 |accessdate=2008-03-28 |deadurl=yes |archiveurl=https://web.archive.org/web/20040713171954/http://www.ibiblio.org/pub/historic-linux/distributions/slackware/3.9/docs/ELF-HOWTO |archivedate=2004-07-13 }}</ref>Linux之所以转向ELF,或多或少是因为在此平台上构建一个''a.out''格式的函式库所需的复杂性过高:因为Linux中''a.out''的ld.so不能重定位共享函式库,所以需要一个中央机构来注册各个函式库的虚拟地址域。<ref>{{cite paper | title = How To Write Shared Libraries | author = Ulrich Drepper | section = 1.1 A Little Bit of History | version = 4.0 | date = 2006-08-20 | url = http://people.redhat.com/drepper/dsohowto.pdf | format = PDF | accessdate = 2007-06-20 | quote = 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. | archive-date = 2007-06-16 | archive-url = https://web.archive.org/web/20070616175733/http://people.redhat.com/drepper/dsohowto.pdf | dead-url = yes }}</ref>一些BSD变体在[[Linux]]被迫转向ELF之后仍然用了很久的''a.out''格式,因为相比于Linux,BSD的''a.out''略微更灵活一些。<ref>{{cite web | title = BSD Myths: BSD uses the a.out executable format, which is outdated technology | accessdate = 2007-04-10 | url = http://people.freebsd.org/~nik/advocacy/myths.html#aout | archive-date = 2007-04-17 | archive-url = https://web.archive.org/web/20070417095655/http://people.freebsd.org/~nik/advocacy/myths.html#aout | dead-url = no }}</ref>由于a.out格式的相关代码已经老旧并缺乏维护,而且已经几乎没有使用a.out格式的存在,5.1版内核决定移除相应的功能支持。<ref>{{cite web |title = x86: Deprecate a.out support |author = Borislav Petkov |date = 5 March 2019 |accessdate = 5 March 2019 |url = https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eac616557050737a8d6ef6fe0322d0980ff0ffde |quote = 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. |archive-date = 2020-09-19 |archive-url = https://web.archive.org/web/20200919224019/https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eac616557050737a8d6ef6fe0322d0980ff0ffde |dead-url = no }}</ref> [[MINIX 3]]仍将''a.out''作为二进制文件的格式,但其不支持[[函式库|共享函式库]]。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息