出品|开源中国
a.out 是一种文件格式,在旧版本的类 Unix 计算机操作系统中用于可执行文件、目标代码,以及在后来的系统中用于共享库,a.out 是 "assembler output" 的缩写。
Linux 其实只使用 a.out 到 1.2 版本(1995 年),而对 ELF 的支持则是最早于 1.1.52 内核中加入(实验性支持)。
目前大多数类 Unix 系统都已改用 ELF 格式,不再采用 a.out 格式,在 2019 年的时候,Linux 内核弃用了对 a.out 支持。不过需要注意的是,当用户没有指定输出名称时,"a.out" 仍然是某些编译器和链接器创建的可执行文件的默认输出文件名,但这个文件仅有文件名为 "a.out",实际创建的文件并不是 a.out 格式(约定俗成的命名习惯)。
在弃用这么久之后,从今年年初开始,Linux 内核开发者就开始着手删除 a.out 相关的代码,现在,随着 Linux 6.1 的到来,之前没有完全清楚的 a.out 代码则是彻底被删除了(删除了大约 500 行相关的 a.out 代码)。
这次代码清理也实现此前承诺的在 2022 年从 Linux 内核中删除所有 a.out 相关内容的目标。