«Работает — не трогай»: Старый код и компьютеры, которые до сих пор функционируют

в 20:00, , рубрики: IBM 402, Блог компании ИТ-ГРАД, ИТ-ГРАД, Программирование, старые компьютеры, старый код

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

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

Поэтому сегодня мы бы хотели рассказать несколько историй о компьютерах и программах, позабытых временем, но не забытых упрямыми людьми.

«Работает — не трогай»: Старый код и компьютеры, которые до сих пор функционируют - 1/ фото Judit Klein CC

Последний из могикан

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

Этот компьютер — IBM 402. Конечно, это не совсем компьютер, в традиционном понимании, но автоматический электромеханический вычислитель, который может быть запрограммирован на распечатку результатов в зависимости от значений, введенных с 80-колонных перфокарт.

В середине прошлого века такие устройства часто использовались компаниями для счета. Машина могла взять длинный список чисел, сложить их, и распечатать подробный отчет. В каком-то смысле это многокилограммовый табличный процессор Excel. Именно для этих целей Sparkler Filters и использует 402, который является последним полностью функционирующим IBM 402 на планете.

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

«Работает — не трогай»: Старый код и компьютеры, которые до сих пор функционируют - 2/ фото 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), проект-менеджер программы «Вояджеров», говорит, что ПО было обновлено во время полета, но НАСА ничего кардинально не меняли и не удаляли.

«Работает — не трогай»: Старый код и компьютеры, которые до сих пор функционируют - 3/ фото 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 плюс примеры практических кейсов.

Автор: ИТ-ГРАД

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js