Linux планирует жить 1 000 лет: разработчики уже готовят решение проблем 2038, 2486 и 3026 годов

Linux планує жити 1 000 років: розробники вже готують відповідь на проблеми 2038, 2486 і 3026 року

19 января 2038 года Linux перестанет работать. 3 июля 2486 года — — снова. А что будет в 3026-м? Сайт Linuxiac обратил внимание на необычный открытый проект — Eternal Software Initiative: команда разработчиков создает виртуальную машину настолько простую, что человек будущего сможет воссоздать её по краткому описанию и запустить на ней установлен современный Linux. Цель — сохранить программное обеспечение не на десятилетия, а на тысячу лет. В README проекта рекомендуется первое, что нужно сделать после загрузки Linux: запустить DOOM.


Почему обычное сохранение не работает

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

Сохранить только бинарник часто недостаточно. Даже если сохранить эмулятор —, он сам становится сложным артефактом, который будущим системам придётся разгадывать. Это замкнутый круг: чтобы запустить старый код, нужен эмулятор; чтобы запустить эмулятор, нужна платформа; чтобы платформа заработала — ещё одна платформа. Eternal предлагает вырваться из этого замкнутого круга, сократив сложность до абсолютного минимума.

Одна инструкция на всю машину

В основе Eternal — «Eternal Computer» лежит намеренно простая виртуальная машина, построенная вокруг единственной инструкции. Эта инструкция называется Subleq: она вычитает одно число из другого и решает, что делать дальше, в зависимости от того, меньше ли результат нуля или равен ему, или нет. Теоретически любой алгоритм можно описать с помощью Subleq — Это доказанный факт теории вычислений. На практике это означает: описание такой машины умещается в нескольких абзацах. Человек из 3026 года, который найдёт это описание, сможет воссоздать машину на любом носителе — — от кремниевого чипа до механического устройства.


Как это выглядит изнутри

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

Eternal упаковывает сохраненное программное обеспечение в так называемые «капсулы» — каждая из которых содержит операционную систему, библиотеки, приложения и все зависимости в одном пакете. GitHub-репозиторий содержит инструкции по сборке виртуальной машины, распаковке образа Linux, запуску системы и — да, запуску DOOM внутри неё.

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

Контекст: Linux и проблема 2038 года

Тема долгосрочного выживания Linux — не только философская. У неё есть и чисто техническая сторона. Так называемая проблема Y2K38 означает, что системы, в которых время хранится в виде 32-битного целого числа секунд, отсчитываемого с 1 января 1970 года, не смогут обрабатывать даты после 03:14:07 UTC 19 января 2038 года — когда это число переполнится. Некоторые частичные решения — такие как «большие временные метки» в файловой системе XFS, введённые в Linux 5.10 — лишь переносят проблему на 2486 год.

Полный переход на 64-битный time_t теоретически даёт около 292 миллиардов лет запаса — но касается лишь части стека. Eternal решает другой уровень проблемы: даже если Linux технически справляется с временными метками через тысячу лет — кто и на чём его запустит? Именно этот вопрос проект ставит с неожиданной серьёзностью.

Спецпроекты

Реалистична ли эта цель

Тысяча лет — период, за который исчезали цивилизации, языки и материалы. Но проект сознательно не претендует на практичность: это скорее исследовательский вопрос о пределах простоты. Если кому-то в 3026 году попадет в руки описание машины с одной инструкцией и набором капсул, — Linux загрузится. И первое, что увидит потомок, — это командная строка. А если захочет — DOOM.

Источник: Linuxiac

Источник материала
loader
loader