В обсуждении обратной совместимости в ядре 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, это должен быть «настоящий» двоичный файл (ненулевой длины), который по крайней мере в основном работает в оригинальном режиме.
источник
Ответы:
Я думаю, что / bin / true должен быть самым старым из работающих ..
Ну, вы можете назвать нулевой файл двоичным файлом?
источник
go.com
для CP / M и DOS, которая перезапустила бы последний загруженный COM-файл. Итак, это было даже продано. Так что, на самом деле, это предшествует Linux. Он просто изменил то, что сделал, когда прыгнул с платформы. Разговор о обратной совместимости! У нас есть программы на CP / M, DOS и * nix, работающие одновременно.zsh: exec format error
Вы можете посмотреть отчет об анализе ABI ядра Linux здесь (версии 2.6.36-4.4.5):
Тот же отчет вы можете найти для нескольких базовых библиотек Linux на этой странице (Glibc, Qt, cairo, ...). Обратная двоичная совместимость оценивается для каждого выпуска в процентах, поэтому вы можете сделать вывод об общей совместимости ABI для каждой библиотеки:
Еще больше отчетов о 700 библиотеках Linux вы можете найти на сайте upstream.rosalinux.ru . Этот ресурс больше не поддерживается (используйте вместо этого abi-tracker ), но вы можете посмотреть отчеты о старых выпусках библиотек.
источник