Один процессор, одна команда: виртуальная машина на SUBLEQ загрузила Linux

Один процессор, одна команда: виртуальная машина на SUBLEQ загрузила Linux

Любая программа, которую вы запускаете сегодня, однажды перестанет работать. Зависимости устаревают, операционные системы меняются, целые архитектуры процессоров исчезают, а проприетарные платформы, на которых всё держалось, становятся недоступными. Глиняная табличка возрастом пять тысяч лет до сих пор читается, а у современного софта период полураспада зависимостей составляет около десяти лет.

За эту задачу взялся разработчик Адриан Кейбл, основатель проекта Eternal Software Initiative. В июне 2026 года он получил награду конкурса обфусцированного кода на C (IOCCC) за ту же архитектуру, которая лежит в основе его технологии. Идея проекта простая по формулировке и амбициозная по сроку: сохранить работающий софт на тысячу лет вперёд.

Классический способ сохранения в библиотеках и музеях, это эмуляция: запускать старое ПО на программной модели старого железа. Но у эмуляции есть структурная проблема. QEMU состоит примерно из двух миллионов строк кода, и сам эмулятор тоже нужно поддерживать, переносить и понимать. Через сто лет он рискует стать таким же артефактом, как и софт, который он должен спасти.

Eternal Software Initiative заходит с противоположной стороны. Вместо сложного эмулятора под конкретное железо берётся предельно простая вычислительная модель, которую легко описать и легко восстановить с нуля. Архитектура называется Subleq+, вариант команды SUBLEQ (subtract and branch if less than or equal to zero). Процессор умеет ровно одно: вычесть одно число из другого и перейти по адресу, если результат меньше нуля или равен нулю.

Несмотря на такой минимализм, архитектуры типа SUBLEQ являются полными по Тьюрингу: при достаточной памяти одной команды хватает, чтобы выразить любое вычисление. Кейбл написал полноценный бэкенд для LLVM, поэтому исходный код на C и C++ компилируется под Subleq+ без правок. Поверх этого он портировал ядро Linux, и система реально загружается. На этой же машине запускаются DOOM и веб-серверы.

На выходе тулчейн даёт то, что в проекте называют капсулой: плоская последовательность целых чисел, которую можно хранить в любой форме, способной долго удерживать числа. Капсулу можно перенести на любой носитель и запустить на любой реализации виртуальной машины. Сама спецификация VM умещается примерно в 50 строк, то есть буквально на одной странице. Чтобы это не было теорией, конкурсная работа на IOCCC занимает всего 366 байт кода на C и при этом загружает Linux.

Весь тулчейн, бэкенд LLVM, порт ядра Linux, рантайм-библиотеки C и C++, референсная виртуальная машина и примеры капсул, выложен на GitHub под лицензией MIT. Собрать его можно на Linux с GCC, Python 3, CMake, Ninja, Flex и Bison.

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

Источники:

Статья Tech Times: https://www.techtimes.com/articles/318667/20260618/software-preservation-breakthrough-ioccc-winning-vm-runs-linux-single-instruction.htm

Eternal Software Initiative: https://eternal-software.org/