Найдавніший бінарний, що працює на Linux?


34

У дискусії щодо зворотної сумісності в ядрі Linux та інтерфейсах інтерфейсу GUI , Алан Кокс зазначає, що " моє ядро ​​3.6rc все ще буде працювати з бінарним Rogue, побудованим у 1992 році. X знову сумісний із програмами, набагато старшими за Linux ".

Тож наскільки сумісними є бінарні інтерфейси додатка Linux ?

Який найдавніший двійковий виконуваний файл, фактично написаний і складений років тому, який все ще працюватиме на сучасному фондовому дистрибутиві загального призначення Linux?

Я впевнений, що всі ці слова підлягають тлумаченню. Моя головна думка полягає в тому, що запустити його через емулятор чи спеціалізовану віртуальну машину або бінарний перекладач нечесно, але деякі такі речі, мабуть, вбудовані в деякі сучасні дистрибутиви, і вивчення цього є частиною задоволення тут.

Цікавими є також варіанти апаратної архітектури, формат виконавчого файлу , мова та основні динамічні завантаження бібліотеки.

Зауважте, коли правила послаблені, ось один приклад просування далі. 2002 веб - сторінки Запуск a.out виконуваним на сучасних Red Hat Linux переговори про використання дуже старий Linux попередньо ELF a.out-формат виконуваних файлів після виконання 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, це повинен бути "справжній" двійковий (ненульова довжина), який все ще принаймні здебільшого працює оригінально.


6
IBCS повинен дозволяти вам запускати двійкові файли, які на кілька років старші за Linux.
Жил "ТАК - перестань бути злим"

Я був здивований, що не побачив тегу "ABI", і ще не міг створити його. Тож додайте, що якщо ви думаєте, що це має сенс.
nealmcb

@Gilles Здається, що iBCS є застарілим. Наприклад, він був замінений на "Linux ABI", можливо, десять років тому (Linux ABI - Використання інших бінарних файлів Unix в Linux ), а остання версія linux-abi, здається, починається з 2002 року для 2.4.18: kernel.org/pub/linux /kernel/people/hch/linux-abi/v2.4
nealmcb

1
Двійковий файл Zork 1981 року працює на VM / 370 IBM і, ймовірно, їх поточний z / VM: Zork - Computer History Wiki . І двійковий файл Zork 1978 року працює на RT-11, якщо ви можете це знайти ....
nealmcb

3
+1 Я також читав цю цитату минулого тижня і цікавився, чи не з’явиться вона тут.
Майкл

Відповіді:


11

Я думаю, що / bin / true має бути найстарішим робочим ..

Ну, чи можете ви назвати файл з нульовим байтом двійковим?

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

1
Симпатичний. Чи знаєте ви, чи / bin / true поширювався як файл нульової довжини, і якщо так, коли і де? Про посмішки див. Solaris / bin / true - TDWTF Forums
nealmcb

3
@nealmcb - Існувала 0-байтна програма, яка викликала go.comяк CP / M, так і DOS, яка перезапустила останній завантажений файл COM. Отже, його навіть продали. Таким чином, він фактично передує Linux. Він просто змінив те, що робив, коли стрибнув платформу. Говоріть про зворотну сумісність! У нас є програма CP / M, DOS і * nix, яка працює відразу.
Джеремі Дж Старчер

Яка дивна поведінка - запустіть останній COM-файл .... У будь-якому разі, я все ще шукаю "справжній" двійковий файл (не нульова довжина), який все ще принаймні працює оригінально.
nealmcb

Цікаво, що це працює у оболонці POSIX та csh, але вона не працює в zsh:zsh: exec format error
Марко

Тільки для уточнення, хоча я люблю це побічне обговорення, я не вважаю це достовірною відповіддю, оскільки воно не було «насправді написане та складено років тому». Я запитую про сумісність ABI.
nealmcb

2

Тож наскільки сумісними є бінарні інтерфейси додатка Linux?

Ви можете переглянути звіт про аналіз ядра Linux ABI тут (версії 2.6.36-4.4.5):

введіть тут опис зображення

Цей самий звіт можна знайти для декількох базових бібліотек Linux на цій сторінці (Glibc, Qt, cairo, ...). Відстала бінарна сумісність оцінюється для кожного випуску у відсотках, тому ви можете зробити висновок щодо загальної сумісності ABI для кожної бібліотеки:

введіть тут опис зображення

Набагато більше звітів про близько 700 бібліотек Linux ви можете знайти на upstream.rosalinux.ru . Цей ресурс більше не підтримується ( натомість використовуйте abi-tracker ), але ви можете переглянути звіти про старі версії бібліотек.


2
Внутрішнє "ядро ABI" нічого не говорить про відсталу сумісність бінарних додатків, що працюють на Linux. Щонайбільше, це говорить про сумісність модулів ядра із зворотним джерелом. Я думаю, що існують гарантії, які не дозволяють вам завантажувати модулі, складені для іншої версії ядра.
ДепресіяДаніель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.