В обсуждении обратной совместимости в ядре Linux и графическом интерфейсе пользователя Алан Кокс отмечает, что « мое ядро 3.6rc будет по-прежнему работать с двоичным файлом Rogue, созданным в 1992 году. X обратно совместим с приложениями, намного старше Linux ».
Итак, насколько обратно-совместимы двоичные интерфейсы приложений Linux ?
Какой самый старый двоичный исполняемый файл, написанный и скомпилированный много лет назад, будет работать на современном стандартном дистрибутиве Linux общего назначения?
Я уверен, что все эти слова подлежат толкованию. Моя основная идея заключается в том, что запускать его через эмулятор, специализированную виртуальную машину или бинарный переводчик несправедливо, но некоторые из этих вещей, вероятно, встроены в некоторые современные дистрибутивы, и изучение этого является частью веселья здесь.
Различия в аппаратной архитектуре, формате исполняемого файла , языке и основных зависимостях динамической загрузки библиотеки также представляют интерес.
Обратите внимание, что когда правила смягчены, вот один из примеров перехода назад. Веб-страница 2002 года « Запуск исполняемых файлов a.out в современной Red Hat Linux» рассказывает об использовании действительно старых исполняемых файлов Linux в формате a.out в формате pre-ELF после выполнения modprobe binfmt_aout
и получения, /lib/ld.so
и libc.so.4
опять же, это второстепенный интерес для этого вопроса, но иллюстрирует такие вещи, которые может быть вовлечено при копании дальше назад.
Обновление для вас, поклонников BSD, приятно видеть, что iBCS2 поддерживал старые приложения Xenix (например, zork / dungeon-2.5.6 от 1990 г.) и приложения SCO OpenServer 5.0.x совсем недавно, как NetBSD 4.0.1 (с 2008 г.): iBCS2 & NetBSD | Веселье с виртуализацией . Но то же самое кажется сломанным в NetBSD 5.0.x.
Обновление 2 : Год спустя, даже после получения значка «Извещатель» по этому вопросу, я все еще ищу ответ. И чтобы уточнить, поскольку речь идет об API, это должен быть «настоящий» двоичный файл (ненулевой длины), который по крайней мере в основном работает в оригинальном режиме.