
Разработчик Андриан Кейбл представил открытый проект под названием Eternal в рамках развития инициативы Eternal Software Initiative. Это решение для запуска ОС Linux на небольшой виртуальной машине для долговременного хранения ПО, например на тысячу лет.
Когда разработчики говорят о сохранении программного обеспечения, они обычно подразумевают хранение архивов, зеркал исходного кода, образов эмуляторов или старых бинарных файлов, работающих с множеством исправлений совместимости. Проект Eternal использует другой подход. Его автор задаётся вопросом, что произойдёт, если компьютеры станут настолько простыми, что кто-то в далёком будущем сможет восстановить хранилище по краткому описанию и снова запустить современное программное обеспечение.

Это основная идея Eternal Software Initiative, проекта с открытым исходным кодом, цель которого — сохранить работоспособность программного обеспечения на протяжении… 1000 лет. В его основе лежит «Вечный компьютер», намеренно простая виртуальная машина, построенная всего на одной инструкции.
Единственная инструкция называется Subleq, что означает «вычесть и перейти, если меньше или равно нулю». По сути, машина вычитает одно число из другого, а затем решает, что делать дальше, исходя из того, равен ли результат нулю или отрицательному значению. Ни больше, ни меньше. В этом вся основа.

«Я понимаю, что на первый взгляд это может показаться просто экспериментом в области компьютерных наук, а не чем‑то, что действительно могло бы запускать Linux. Но Eternal делает именно это. Проект использует модифицированную версию Subleq под названием Subleq+, а также бэкенд LLVM, порт ядра Linux, поддержку среды выполнения C и C++, uClibc‑ng, BusyBox и эталонную виртуальную машину. В результате получается самодостаточная капсула Linux, которая может загружаться в командную оболочку внутри этой крошечной машины», — пояснил автор решения.
Согласно проекту Eternal, современное программное обеспечение трудно сохранить, потому что оно зависит от множества других вещей. Программе необходима операционная система, библиотеки, компиляторы, фреймворки, поведение оборудования, микропрограмма, форматы файлов и множество предположений из своего времени. Сохранения только бинарного файла часто недостаточно. Даже если вы сохраните эмулятор, этот эмулятор станет ещё одной сложной вещью, которую будущим системам придётся осваивать. В Eternal пытаются упростить эту проблему. Вместо того чтобы ожидать от разработчиков в будущем воссоздания сегодняшнего оборудования и программного обеспечения, проект определяет компьютерную систему настолько базовую, что её проект можно записать в крошечном формате. Согласно сайту проекта, эталонная виртуальная машина состоит примерно из 30 строк псевдокода, а в файле README на GitHub указано, что версия на C — около 50 строк.

Проект Eternal упаковывает сохранённое программное обеспечение в так называемые капсулы. Каждая капсула включает операционную систему, библиотеки, приложения и все зависимости в одном пакете. В примере проекта это означает капсулу на основе Linux, которую виртуальная машина Eternal может загрузить и запустить снова.
Вот где проект становится интересным в забавном смысле. В репозитории GitHub есть инструкции по сборке виртуальной машины, распаковке образа загрузки Linux, её запуску и запуску программного обеспечения внутри. В файле README даже предлагается попробовать DOOM после того, как Linux будет установлен и запущен.

Eternal не предназначен для практического использования в качестве дистрибутива Linux, и он не стремится к этому. Это не замена QEMU, не новая платформа для настольных компьютеров и не реалистичный способ запуска повседневного программного обеспечения. Его истинная ценность заключается в вопросе, который он поднимает: насколько простым должен быть компьютер, чтобы сохранение программного обеспечения длилось столетиями, а не просто десятилетиями?
Но часть, касающаяся Linux, реальна. Она охватывает весь программный стек: LLVM для компиляции, Linux как операционная система, BusyBox для пользовательских инструментов, библиотеки времени выполнения и виртуальная машина для запуска капсулы. Это редкий эксперимент, где нечто чрезвычайно минималистичное и очень практичное объединяется в одном месте.
Здесь есть некоторая историческая ирония. Linux обычно работает на всё более сложном оборудовании, таком как серверы, ноутбуки, телефоны, встроенные платы и облачные системы. Eternal делает обратное. Проект Eternal сводит ПК к почти примитивной модели, а затем добавляет ровно столько инструментов, чтобы Linux всё равно на ней работал.
Пока неясно, станет ли Eternal чем-то большим, чем просто интересным экспериментом. Проект новый, и его цели амбициозны. Никто не может с уверенностью сказать, будет ли программная капсула работать через 1000 лет. Но как любопытный проект с открытым исходным кодом, трудно не оценить эту идею. Так сможет ли кто-нибудь в далёком будущем запустить часть нашего цифрового мира, имея в своем распоряжении лишь капсулу, краткое описание работы машины и умение вычитать числа? Для проекта, основанного всего на одной инструкции, это удивительно масштабная идея.

