Логотип

Кто-то хочет, чтобы Linux продолжал работать и через тысячу лет

Кто-то хочет, чтобы Linux продолжал работать и через тысячу лет

Когда люди говорят о сохранении программного обеспечения, они обычно имеют в виду хранение архивов, зеркал исходного кода, образов эмуляторов или старых бинарных файлов, прошедших множество проверок на совместимость. Eternal предлагает другой подход. Он задается вопросом: что было бы, если бы компьютеры были настолько простыми, что кто-то в далеком будущем смог бы собрать их по краткому описанию и снова запустить современное программное обеспечение?

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

Единственная инструкция называется Subleq, что расшифровывается как «вычесть и перейти по ветке, если результат меньше или равен нулю». По сути, машина вычитает одно число из другого, а затем решает, что делать дальше, в зависимости от того, равен ли результат нулю или отрицателен. Ни больше ни меньше. Вот и вся основа.

Я понимаю, что на первый взгляд это может показаться просто экспериментом в области компьютерных наук, а не чем-то, что действительно может запустить Linux. Но Eternal именно это и делает. В проекте используется модифицированная версия Subleq под названием Subleq+, а также бэкенд LLVM, порт ядра Linux, поддержка среды выполнения C и C++, uClibc-ng, BusyBox и эталонная виртуальная машина. В итоге получается автономная капсула Linux, которая может загружаться в оболочку внутри этой крошечной машины.

В рамках проекта утверждается, что современное программное обеспечение сложно сохранить, поскольку оно зависит от множества других факторов. Программе нужны операционная система, библиотеки, компиляторы, фреймворки, особенности аппаратного обеспечения, встроенное ПО, форматы файлов и множество допущений, характерных для того времени, в котором она была создана. Сохранить только бинарный код зачастую недостаточно. Даже если вы сохраните эмулятор, он станет еще одним сложным элементом, который придется адаптировать будущим системам.

Читать  Portainer 2.33 LTS: новый брендинг, переработанный руль и предварительный просмотр видимости

Eternal пытается упростить эту задачу. Вместо того чтобы ждать, пока люди в будущем пересоберут современное аппаратное и программное обеспечение, проект предлагает создать настолько простую машину, что ее устройство можно описать в очень компактном формате. Согласно информации на сайте проекта, эталонная виртуальная машина состоит примерно из 30 строк псевдокода, а в файле README на GitHub указано, что версия на языке C занимает около 50 строк.

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

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

Eternal не претендует на роль практичного дистрибутива Linux и не стремится к этому. Это не замена QEMU, не новая платформа для настольных компьютеров и не реалистичный способ запуска обычного программного обеспечения. Его истинная ценность заключается в том, что он поднимает вопрос: насколько простым должен быть компьютер, чтобы программное обеспечение можно было сохранять на протяжении веков, а не десятилетий?

Но часть, связанная с Linux, вполне реальна. Она охватывает весь программный стек: LLVM для компиляции, Linux в качестве операционной системы, BusyBox для пользовательских инструментов, библиотеки времени выполнения и виртуальную машину для запуска капсулы. Это редкий эксперимент, в котором в одном месте собрано что-то крайне минималистичное и очень практичное.

Читать  Удаленный рабочий стол RustDesk 1.4.1 добавляет поддержку терминала и стилуса

В этом есть доля исторической иронии. Linux обычно работает на все более сложном оборудовании: серверах, ноутбуках, телефонах, встроенных платах и облачных системах. Eternal делает прямо противоположное. Он сводит устройство к почти примитивной модели, а затем добавляет ровно столько инструментов, сколько нужно, чтобы на нем все равно можно было запустить Linux.

Пока неясно, станет ли Eternal чем-то большим, чем просто интересным экспериментом. Проект новый, и цели у него амбициозные. Никто не может с уверенностью сказать, будет ли программная капсула работать через 1000 лет. Но как любопытный проект с открытым исходным кодом он заслуживает внимания.

Так сможет ли кто-то в далеком будущем воссоздать часть нашего цифрового мира, имея в распоряжении лишь капсулу, краткое описание машины и возможность вычитать числа? Для проекта, основанного всего на одной инструкции, это удивительно масштабная идея.

Желающие могут узнать больше в репозитории проекта на GitHub.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)

Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.

Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2 × 3 =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала