Сьогодні усе в вашому комп’ютері потребує інтернету. В Linux, наприклад, на відміну від Windows, установка додатків відбувається майже завжди з інтернет-репозиторіїв, офлайнова установка є ускладненим процесом. Також найпростіший додаток неможливо створити без інтернету – інструменти програмування та необхідні бібліотеки не постачаються в офлайнових пакетах, а завантажуються через інтернет. Однак інтернет – це надзвичайно крихка річ, яка перестане існувати в перші хвилини глобального катаклізму чи глобальної війни. Зважаючи, що до глобального апокаліпсису залишилося 90 секунд, канадський програміст Вергілій Дюпра створив операційну систему Collapse OS на мові програмування Fort, які повинні стати основою комп’ютерних технологій під час кінця світу.
Вергілій Дюпра вважає, що крах цивілізації настане двома хвилями.
По-перше, зруйнуються глобальні ланцюжок поставок. Сучасні технології спираються на крихку мережу заводів і міжнародних транспортних маршрутів, які надзвичайно вразливі до швидкої зміни клімату. В iPhone використовуються чипи пам’яті з Південної Кореї, напівпровідники з Тайваню і складальні лінії у Бразилії та Китаї. Розрив цих зв’язків, за словами Дюпра, стане каталізатором повного розпаду суспільства.
Друга частина станеться, коли останній комп’ютер вийде з ладу. Складність та вендор-лок сучасного обладнання означає, що його практично неможливо відремонтувати або перепрофілювати. Без коштів для створення нових пристроїв, вважає Дюпра, відключення буде відбуватися повільно. Маршрутизатори вмирають. Сервери випускають останній подих. Телефони відмовляють. Нічого не працює.
За винятком Collapse OS. Легка і призначена для роботи на застарілому обладнанні, це операційна система компанії Dupras для кінця світу.
Дюпрас живе в сільській місцевості Квебеку, Канада, зі своєю дружиною і двома дітьми, в містечку з населенням 500 осіб, де люди самі рубають дрова, вирощують собі їжу, а іноді і будують власні будинки.
На відміну від багатьох своїх екологічно налаштованих сусідів, Дюпра вважає битву зі зміною клімату марною. Ми вже програли. “Одного разу, заглянувши в безодню, ви вже не зможете її не побачити”, – каже він. Дюпра просто змирився зі своєю долею до такої міри, що це стало символом віри. “Точно так само, як є католики, є і коллапсеники”, – говорить він.
Але він не без надії. Людина без надії не стала би так маніакально готуватися до антисингулярності. Дюпра почав створювати Collapse OS в 2019 році в спробі зберегти здатність людства програмувати 8-розрядні мікроконтролери. Ці крихітні комп’ютери управляють такими речами, як радіоприймачі і сонячні батареї, і їх можна використовувати у всьому, від моніторингу погоди до зберігання цифрових даних.
Дюпра вирішив, що можливість перепрограмувати їх з мінімальними залишилися ресурсами буде мати важливе значення після краху. Але спочатку він повинен був сам вивчити мову програмування під час апокаліпсису.
В кінці 1950-х років спеціаліст з інформатики Чак Х. Мур працював у Смітсоновській астрофізичній обсерваторії, пророкуючи майбутнє положення небесних тіл і супутників на основі даних спостережень. Машинної пам’яті було мало — тоді ще були перфокарти, — і Муру потрібен був спосіб оптимізувати ефективність обробки за рахунок мінімізації використання пам’яті. Він розробив програму, яка виконувала прості команди безпосередньо, по одній за раз, без необхідності перекомпіляції. Протягом наступного десятиліття вона перетворилася на мову програмування, яку він назвав Forth.
Forth взаємодіє безпосередньо з обладнанням. Мова управляє пам’яттю комп’ютера за допомогою команд, званих “Словами”, які ви визначаєте на льоту. Оскільки базовий набір команд, що ховається за цими Словами, визначений у власному машинному коді, потрібно перевести лише невелику частину, що означає менший обсяг асемблера і оперативної пам’яті.
В результаті Forth забезпечує вражаючий рівень того, що Дюпра називає “питомою потужністю”, що робить мову ідеальною основою для Collapse OS.
Це важливо, тому що світло (ймовірно) не згасне назавжди — замість цього наш простий світ завжди доступної електрики буде замінений дорогими і насилу здобутими крихітними генераторами. Вирішальне значення буде мати ефективне використання обчислювальної потужності. У пості на Collapse.org, його великому маніфесті, Дюпра описує, як його відкриття Forth викликало в уяві те, що алкоголіки називають моментом ясності.
Дюпра знадобилося два роки, щоб закінчити роботу над Collapse OS. Завантаження копії з USB-накопичувача дає технічно підкованим користувачам можливість програмувати мікроконтролери, які, в свою чергу, можуть дозволити їм автоматизувати теплиці, управляти телефонними лініями і навіть регулювати подачу електроенергії.
Але Дюпра знав, що цього буде недостатньо для відновлення суспільства після краху. Тому в 2022 році він почав роботу над Dusk OS (ОС Сутінки) — версією Collapse OS, яка працює на сучасних пристроях. Дюпра використовував Forth для створення свого власного компілятора, який зробив Сутінки OS сумісною з кодом, написаним на C (основа більшості сучасних програм).
Таким чином, без необхідності переписувати логіку, яка вже існує, з нуля, Сутінки OS може витягувати і редагувати текст і отримувати доступ до форматів файлів, зазвичай використовуваних для резервного копіювання. Вона може бути запущена в емуляторі на смарт-годинниках і старих планшетах.
Чому все це взагалі має значення: невже доступ до комп’ютера буде пріоритетом, коли ми будемо битися один з одним за їжу? Дюпра робить гарне зауваження: що відбувається після того, як ми знову знайомимося з полюванням і збиральництвом?
Якщо ми хочемо перебудувати суспільство, нам потрібно знати, як це зробити. І в разі цивілізаційного колапсу більша частина нашого колективного досвіду — наприклад, дорогоцінні WikiHows — буде замкнена на жорстких дисках або загублена в хмарі.
Дюпра сподівається, що Dusk OS надасть людям після колапсу доступ до архівів втрачених знань, таких як Глобальне сховище насіння на Шпіцбергені.
У чому підступ? Найкраще завантажити Сутінки OS на старий телефон, карту пам’яті або ноутбук до краху цивілізації. В іншому випадку, без інтернету, ви зможете отримати її, тільки скопіювавши у когось, у кого вона вже встановлена.
Що підводить нас до другого питання — причини, з якої Дюпра прирівнює володіння Forth до потужності. Дуже небагато людей будуть мати як копію Сутінки OS , так і знання для роботи з нею. Ця обрана група буде володіти ключами до відновлення суспільства і, по суті, стане королями-філософами після колапсу.
Програмування в Forth нагадує беззаконня. Ви встановлюєте свої власні правила, підкоряючись обмеженням контексту. Ви можете перевизначити, якщо побажаєте, оператор IF (один з найголовніших операторів будь-якої мови програмування, що дозволяє програмі обирати певну дію залежно від поточної умови). Ви можете переписати інструкції машинного коду для слова. Ви навіть можете змінювати слова під час виконання. Оскільки в Forth слова самі стають ключовими словами, ви можете створити мову, оптимізовану для однієї мети, об’єднуючи команди, які в іншому разі були б з десятків рядків, всього в одну.
“У Forth ви створюєте свою власну мову”, – сказав Лео Броуді, автор першого підручника Forth “Починаючи з Forth”.
Низькорівнева колективна природа Forth, хоча і є ключем до його обчислювальної потужності, змушувала відчувати програмування як щось дико незвичне. Він використовує postfix, форму математичного запису, яка відображає операцію 2 + 1 як 2 1 +. І хоча більшість мов допускають поділ пам’яті та переміщення по ній, Forth заснований на стеку, що означає, що дані зберігаються в хронологічному порядку і управляються за принципом “останній увійшов / першим вийшов”.
Дюпрас порівнює використання Forth з управлінням палицею. Ця мова більш деталізована, ніж мова C (ключова мова сучасних ОС та додатків). Там, де С визначає угоди про виклики, сховище змінних і управління стеком повернутих даних, Forth залишає все це на розсуд програміста. Forth безпосередньо взаємодіє з пам’яттю так само, як C, але набагато перевершує C по точності та ефективності.
“Люди помилково приймають Forth за просто мову”, – каже Дюпра. “Це спосіб взаємодії з комп’ютером”.
Причина, по якій Forth не користується більшою популярністю – бум персональних комп’ютерів 1990-х років породив нав’язливу ідею зробити технології зручними для сприйняття і спростити написання коду. Мови були абстраговані, щоб захистити програмістів від самих себеи.
“Наше розуміння ефективності настільки спотворено”, – говорить Дюпра. Forth – це ручна коса, а Python – механізована газонокосарка. “Якщо ви підрахуєте кількість витрачених джоулів на травинку, то виявите, що людина косить більш ефективно”, – говорить він. “Коли ви думаєте про швидкість, вам здається, що газонокосарка більш ефективна”.
Forth змушує вас бути точним і економно витрачати пам’ять — ретельно розподіляти свої ресурси, як ви б поступили після краху. “У певний момент ви можете рухатися так само швидко, як газонокосарка”, – говорить Дюпра.
З Forth обов’зкові сьогодні для використання підходи YAGNI (вам це не знадобиться), KISS (будь простіше), DRY (не повторюйте) — застаріли.
Сбогодні ми не рахуємо, скільки ресурсів йде на те, щоб зробити програмування “зручним для користувача”. Ми не замислюємося, скільки енергії необхідно для живлення кожного додаткового гігабайти оперативної пам’яті, або про той факт, що хмарні обчислення зараз залишають більший вуглецевий слід, що авіаційна галузь.
Незважаючи на всі зростаючі екологічні витрати, пам’ять залишається такою ж дешевою і доступною, як і раніше. Сьогодні мови, які ближче до апаратної частини комп’ютера, використовуються тільки по необхідності: банки намагаються мінімізувати затримки при фінансових операціях, космічні апарати, що працюють з обмеженими бортовими ресурсами, застарілі системи, оновлення яких зажадало б занадто великої роботи.
Але під час колапсу цивілізації розкіш обробки масивів даних і автоматичного керування пам’яттю в значній мірі зникне. Оскільки зручність веде нас все далі від комп’ютера, ми ризикуємо забути, як насправді працюють комп’ютери, і втратити здатність відновлювати наші технології у випадку збою цивілізації.
“Ніхто не пам’ятає, як написати текстовий редактор”, – говорить Дівайн, незалежний програміст, який листується з Дюпрасом. “Коли ти починаєш забувати, як робити щось настільки важливе, як це, коли все починає розвалюватися, воно розвалюється дуже сильно”.
Дівайн розглядає штучний інтелект (ШІ) як вершину абстракції в програмуванні, орієнтованого на людину. З ШІ коли комп’ютер вгадує, що ви намагаєтеся зробити, і робить це за вас.
Проблема в тому, що використання ШІ розвиває залежність від нього. По мірі того як програмісти стають все більш залежними від мов високого рівня, володіння мовами апаратного рівня різко знижується. ШІ не просто забере у нас роботу, він змусить нас забути, як її виконувати, — якщо у нас спочатку не вичерпається енергія, щоб привести ШІ в дію.
Але, може бути, є інший спосіб. З 2016 року Дівайн живе повний робочий день на невеликому судні в північній частині Тихого океану і використовує мови більш низького рівня, такі як Forth, щоб максимально використовувати 190 ват щоденної потужності від двох сонячних панелей.
Їх спосіб життя був схожий на демонстрацію життя з обмеженими ресурсами, яку Дюпра очікує під час краху цивілізації.
За матеріалами: Wired