Linux 上运行的最古老的二进制文件?

Linux 上运行的最古老的二进制文件?

在一个关于 Linux 内核和 GUI ABI 向后兼容性的讨论,艾伦·考克斯指出“我的 3.6rc 内核仍将运行 1992 年构建的 Rogue 二进制文件。X 向后兼容比 Linux 更早的应用程序。

Linux 的向后兼容程度如何?应用程序二进制接口

实际上,几年前编写和编译的、仍然可以在现代通用 Linux 发行版上运行的最古老的二进制可执行文件是什么?

我确信所有这些词都可以解释。我的主要想法是,通过模拟器或专门的虚拟机或二进制翻译器运行它是不公平的,但一些这样的东西可能内置在一些现代发行版中,了解这一点是这里的乐趣的一部分。

硬件架构的差异,可执行文件格式、语言和主要库动态加载依赖项也很有趣。

请注意,当规则放宽时,这里有一个更进一步的例子。 2002年网页在现代 Red Hat Linux 上运行 a.out 可执行文件谈论使用真的旧的 Linux pre-ELF a.out-format 可执行文件在执行modprobe binfmt_aout 并获取之后/lib/ld.solibc.so.4 这又是这个问题的外围兴趣,但说明了进一步挖掘时可能涉及的各种事情。

更新对于 BSD 粉丝来说,很高兴看到 iBCS2 支持旧的 Xenix 应用程序(例如 1990 年的 zork/dungeon-2.5.6)和 SCO OpenServer 5.0.x 应用程序,最近支持 NetBSD 4.0.1(2008 年):iBCS2 和 NetBSD |虚拟化的乐趣。但同样的事情在 NetBSD 5.0.x 中似乎被破坏了。

更新2:一年后,即使因为这个问题获得了“播音员”徽章,我仍在寻找答案。需要澄清的是,由于这是关于 API 的,因此它应该是一个“真正的”二进制文件(非零长度),至少仍然以原始方式工作。

答案1

我认为 /bin/true 必须是最古老的工作..

那么,你能将零字节文件称为二进制文件吗?

touch /tmp/old_true
chmod 755 /tmp/old_true
/tmp/old_true
echo $?

答案2

那么 Linux 应用程序二进制接口的向后兼容性到底如何呢?

可以看看Linux内核ABI的分析报告这里(2.6.36-4.4.5版本):

在此输入图像描述

您可以在以下位置找到多个 Linux 基础库的相同报告这一页(Glibc、Qt、开罗……)。每个版本的向后二进制兼容性以百分比为单位进行估计,因此您可以对每个库的整体 ABI 兼容性得出结论:

在此输入图像描述

有关大约 700 个 Linux 库的更多报告,您可以在上游.rosalinux.ru。不再支持该资源(使用abi追踪器相反),但您可以查看旧版本库的报告。

相关内容