Ініціатива Eternal Software: збереження програмного забезпечення на тисячу років
Ініціатива Eternal: збереження програмного забезпечення на тисячу років
Коли люди говорять про збереження програмного забезпечення, зазвичай мають на увазі архіви, дзеркала вихідного коду, образи емуляторів або старі бінарні файли. Eternal пропонує інший підхід. Проект ставить питання, що було б, якби комп’ютери були настільки простими, що хтось у віддаленому майбутньому зміг би відновити його за коротким описом і запустити сучасне програмне забезпечення.
Що таке Eternal Software Initiative?
Це основна ідея Eternal Software Initiative — проекту з відкритим вихідним кодом, що має на меті зберегти програмне забезпечення запущеним на протязі… 1,000 років. В його основі лежить «Вічний комп’ютер», спеціально створена проста віртуальна машина, що базується лише на одному інструкції.
Яка основна інструкція Eternal?
Єдина інструкція називається Subleq, що розшифровується як «віднімати та переходити, якщо менше або дорівнює нулю». По суті, машина віднімає одне число від іншого та приймає рішення подальших дій на основі того, чи є результат нульовим або від’ємним. Це вся основа.
Можливо, спочатку це звучить як просто експеримент у комп’ютерних науках, а не як щось, що може запустити Linux. Але Eternal робить саме це. Проект використовує модифіковану версію Subleq, названу Subleq+, а також LLVM бекенд, порт ядра Linux, підтримку виконання C та C++, uClibc-ng, BusyBox та еталонну віртуальну машину. В результаті виникає самодостатня капсула Linux, яка може завантажитися в оболонку всередині цієї маленької машини.
Чому збереження програмного забезпечення ускладнюється?
Проект стверджує, що сучасне програмне забезпечення важко зберігати, оскільки воно залежить від багатьох інших речей. Програмі потрібна операційна система, бібліотеки, компілятори, фреймворки, фізична поведінка апаратного забезпечення, прошивки, формати файлів і безліч припущень з власного часу. Збереження лише бінарного файлу часто недостатньо. Навіть якщо зберегти емулятор, це стає ще одним складним елементом, який майбутні системи повинні освоїти.
Як працює Eternal?
Eternal намагається спростити цю проблему. Замість того, щоб очікувати, що люди в майбутньому відновлять сьогоднішнє апаратне та програмне забезпечення, він визначає машину такою простою, що її дизайн можна записати в компактному форматі. Згідно з даними проекту, еталонна віртуальна машина складається з близько 30 рядків псевдокоду, а файл README на GitHub зазначає, що його версія на C містить близько 50 рядків.
Eternal упакував збережене програмне забезпечення в те, що називає капсулами. Кожна капсула включає операційну систему, бібліотеки, програми та всі залежності в одному пакеті. У прикладі проекту це означає капсулу на основі Linux, яку Віртуальна машина Eternal може завантажити і запустити знову.
Додаткові можливості Eternal
Це місце, де проект стає цікавим у веселому сенсі. Репозиторій GitHub має інструкції для створення віртуальної машини, розпакування образу завантаження Linux, його запуску та запуску програм всередині. README навіть пропонує спробувати DOOM після запуску Linux.
Eternal не призначений для того, щоб бути практичною дистрибуцією Linux, і не намагається бути таким. Це не заміна QEMU, новій настільній платформі чи реалістичному способу запуску повсякденного програмного забезпечення. Його справжня цінність полягає в питанні, яке він ставить: наскільки простою має бути комп’ютерна машина, щоб збереження програмного забезпечення тривало століттями, а не лише десятиліттями?
Але частина з Linux реальна. Вона охоплює весь стек програмного забезпечення: LLVM для компіляції, Linux як операційну систему, BusyBox для інструментів користувача, бібліотеки виконання та віртуальну машину для запуску капсули. Це рідкісний експеримент, де щось надзвичайно мінімалістичне та дуже практичне сходиться в одному місці.
Тут є трохи історичної іронії. Linux зазвичай працює на все більш складному апаратному забезпеченні, такому як сервери, ноутбуки, телефони, вбудовані плати та хмарні системи. Eternal робить навпаки. Він зменшує машину до майже примітивної моделі, а потім додає лише достатньо інструментів, щоб запустити Linux на ній.
Поки що невідомо, чи стане Eternal більше, ніж просто цікавий експеримент. Проект новий, і його цілі амбітні. Ніхто не може сказати напевно, чи буде програмна капсула працювати через 1,000 років. Але як цікава відкрито-джерельна ініціатива, ідею важко недооцінити.
Чи можливо зберегти цифровий світ майбутнього?
Отже, чи зможе хтось у віддаленому майбутньому запустити частину нашого цифрового світу, якщо все, що в них є, — це капсула, короткий опис машини та здатність віднімати числа? Для проекту, заснованого на всього лише одній інструкції, це, безумовно, досить велика ідея.
Зацікавлені можуть дізнатися більше на GitHub репозиторії проекту.




