У дискусії щодо зворотної сумісності в ядрі 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, це повинен бути "справжній" двійковий (ненульова довжина), який все ще принаймні здебільшого працює оригінально.