«Працює — не чіпай»: Старий код та комп'ютери, які досі функціонують

В сучасному світі, в якому дворічний смартфон здається застарілою технологією, дивним залишається факт, що багато бізнесів і державні компанії щоденно використовують програми, не обновлявшиеся протягом десятків років.

Згідно з дослідженням, проведеним урядовими структурами США, Секретна служба досі користується комп'ютерною системою, створеною в 80-х роках минулого століття. Подібні «старі» рішення також стоять на озброєнні багатьох країн світу і застосовуються для управління балістичними комплексами, системами підводних човнів і літаків.

Тому сьогодні ми б хотіли розповісти кілька історій про комп'ютери і програмах, забутих часом, але не забутих впертими людьми.

/ фото Judit Klein CC

Останній з могікан
Компанія Sparkler Filters у місті Конро, штат Техас, перебуває на ринку вже дуже давно і пропонує пристрої фільтрації. І якщо ви оформите у них замовлення на нутч-фільтр, то вони введуть дані по транзакції в комп'ютер, що працює з 1948 року.

Цей комп'ютер — IBM 402. Звичайно, це не зовсім комп'ютер, в традиційному розумінні, але автоматичний електромеханічний обчислювач, який може бути запрограмований на роздруківку результатів в залежності від значень, введених з 80-колонних перфокарт.

В середині минулого століття такі пристрої часто використовувалися компаніями для рахунку. Машина могла взяти довгий список чисел, скласти їх, і роздрукувати докладний звіт. У якомусь сенсі це багатокілограмовий табличний процесор Excel. Саме для цих цілей Sparkler Filters і використовує 402, який є останнім повністю функціонуючим IBM 402 на планеті.

Машина друкує звіти на широкій папері з провідними отворами, а Карл Краклауэр (Carl Kracklauer), чий батько заснував Sparkler Filters в 1927 році, вводить дані на перфокартах. Компанія не переходить на «сучасне» обладнання, оскільки 402 — це звичне рішення. Персонал знає, як використовувати систему, і 60 років облікових даних компанії відформатовані для роботи з пристроєм.

/ фото Simon Claessen CC

У Sparkler Filters також є десятки програм для IBM 402 у форматі комутаційних панелей. Для написання програми в 40-х роках було потрібно перерозподіляти сотні проводів з різних гнізд панелі — це визначало операцію машини. При цьому панелі можуть замінюватися, як якщо б вони були змінними дисками з програмним забезпеченням.

IBM 402 в Sparkler Filters — це настільки значуща комп'ютерна реліквія, що Музей компьютерної історії відправляв делегацію в компанію, щоб переконати співробітників перейти на більш сучасні системи і передати 402 музею. Коли-небудь це буде гідне місце для відпочинку «дідка», однак поки що техаська компанія вирішила відкласти вихід на пенсію цього динозавра обчислювальних технологій.

Система MOCAS
Але не тільки обчислювальні системи живуть з середини минулого століття. Є довгожителі і серед комп'ютерних програм. У 1958 році Міністерство оборони США запустило комп'ютеризовану систему управління контрактами MOCAS, яка повинна була стежити за чинними контрактами і платежами. І вона слідкує, 59 років потому.

MOCAS написана на мові COBOL — мовою, який не був офіційно схвалений на момент написання програми. Спочатку MOCAS працювала на перфокартах, проте за минулі десятиліття був перероблений інтерфейс. Спочатку він став термінальним. Потім він отримав веб-оболонку.

Веб-інтерфейси часто приховують вік старих систем. Міністерство оборони забезпечило MOCAS новим інтерфейсом, щоб зберегти її працездатність в сучасних реаліях. У нинішньому варіанті система може бути інтегрована з іншими програмними пакетами, наприклад, користувач має можливість прикріплювати до записів документи Microsoft Word.

Пентагон побоюється міняти цю систему на більш сучасну, так як вона працює з 1,3 трлн доларів в облігаціях і 340 тис. контрактів. Вона запущена на мейнфрейме IBM, який здатний обробляти 398 млн. команд в секунду, при цьому маючи скромні 8 гігабайт ОПЕРАТИВНОЇ пам'яті і велика кількість пристроїв для зберігання даних.

Одні в порожнечі
У травні 1977 році був дан старт двом великим космічним дослідним місій — були запущені апарати «Вояджер-2» і «Вояджер-1». Сьогодні обидва зонди продовжують надсилати зібрані дані з тих точок космосу, де ще не бувала людина. Де ще не бували штучні апарати.

В кінці серпня 2012 року датчики «Вояджера-1» зафіксували різке зниження концентрації частинок сонячного вітру. Це означало, що «Вояджер-1» виявився в міжзоряному просторі. У 2013 році професор астрономії Білл Веббер (Bill Webber) офіційно повідомив, що «Вояджер-1 вийшов за межі Сонячної системи.

Обидва «Вояджера» практично ідентичні і використовують три комп'ютера: підсистему обробки даних польоту, підсистему обробки команд і підсистему управління кутовий орієнтацією і шарнірними з'єднаннями. Всі разом вони коригують маршрут зонда, направляють антени в бік Землі і керують дослідними інструментами, наприклад камерами. Щоправда, камери були відключені і не використовувалися з тих пір, як зонд завершив проліт повз планет юпитеровой групи.

Через 40 років, програмне забезпечення космічних апаратів все ще функціонує. Сьюзі Додд (Suzy Dodd), проект-менеджер програми «Вояджерів», говорит, що було оновлено під час польоту, але НАСА нічого кардинально не змінювали і не видаляли.

/ фото Dusty Reichwein CC

Зонди мають лише 70 кілобайт пам'яті, із-за чого програмний код доводиться підміняти на різних етапах місії. «Наприклад, це відбувалося 18 разів під час прольоту Юпітера», — рассказывает науковий співробітник програми Ед Стоун (Ed Stone). А одного разу, у 2010 році, на Землю почали приходити спотворені дані. Проблема виявилася в одному біті, який перейшов з нуля на одиницю, — програма була перезапущена і по сей день знаходиться в експлуатації.

У НАСА очікують, що максимальний термін життя зондів і програмного забезпечення становитиме 48 років: з 1977 по 2025 рік. До 2020 року вчені відключать деякі системи космічних апаратів, але вони все одно продовжать своє «спілкування із Землею», поки не відправлять своє останнє повідомлення у 2025 році. У цей момент одна з найстаріших комп'ютерних програм перестане функціонувати.

Внесок громадськості
Подібні історії, коли стара програма, написана кілька років тому, продовжує активно використовуватися, зустрічаються і в середовищі розробників-ентузіастів. І це не дивно, адже чим менше користувальницька база програми, тим більше ймовірність, що код буде працювати «вічно» і без змін.

Наприклад, в одному з тредів на Hacker News розробники поділилися власними історіями. Користувач з ніком Byuu розповів, що ціле співтовариство smwcentral.net використовує крос-асемблер xkas, що той написав у 2001 році.

«Я додав кілька невеликих патчів на початку 2004 року і випустила фінальну версію v06, — каже Byuu. — Я не сподівався, що хтось буде серйозно використовувати моє рішення. Робив для себе, але виклав у мережу».

За його словами, це код довжиною 1500 рядків без коментарів і відступів. До нього не додається ніяка документація. Кожен користувач зустрічає різні баги, які учасники спільноти вчаться «обходити». Все це перетворилося в порочне коло — люди використовували xkas, тому що все було написано на xkas.

Трохи пізніше ентузіасти почали писати власні версії асемблера, пропонують сумісність для неочевидних рішень оригінальної програми. «Мені дуже соромно за те, що так багато людей застрягли в цьому круговороті помилок, але я вже нічого не можу вдіяти», — підсумовує Byuu.

Користувач buro9 також поділився історією. За його словами, самий старий код, який він писав, і який досі працює, — це якась система для внутрішнього використання студією звукозапису, створена в 1997 році.

«Я все ще отримую листи, в яких мене запитують, як працює та чи інша функція, — каже buro9. — А я поняття не маю, це був PERL».

Ще одне рішення — програмне забезпечення для управління проектами, написана десять років тому, яким користуються банки Великобританії і деякі машинобудівні компанії. За словами автора, вона не має інтернет-сумісності і жодного разу не оновлювалася. Оскільки такі організації управляють двадцятирічними проектами, то, швидше за все, ця програма буде працювати ще як мінімум десяток років.

Можливо, це і є головна причина, чому багато системи досі функціонують. Адже перейти на нову версію програмного забезпечення або змінити платформу повністю найчастіше неможливо — це занадто трудомістко або, навпаки, не варто витрачених зусиль і коштів.

Однак є і такі люди, як співробітники Sparkler Filters зі своїм IBM 402, які слідують простому і відомим правилом: «Працює — не чіпай». Завдяки цьому ми можемо спостерігати такі дивовижні рішення, що пройшли крізь роки і не втратили своєї функціональності.

P. S. Пропонуємо звернути увагу ще на кілька цікавих матеріалів з нашого блогу:

P. P. S. Наш свіжий дайджест — все про роботу з IaaS плюс приклади практичних кейсів.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.