![](http://webcf.waybackmachine.org/web/20210428133810im_/https://habrastorage.org/getpro/habr/avatars/0a2/dff/27b/0a2dff27b37c45373cd8d81c513a9d00.png)
Как мейнфреймы не вымерли
Думаю, что у большинства читателей слово «мейнфрейм» вызывает ностальгию или чувство знакомого слова, значение которого не знают. Ещё в далёкие 90-ые предрекали конец мейнфреймов и уже тогда их называли динозаврами. Но что, если я скажу Вам, что мейнфреймы живы, развиваются и никуда не собираются уходить?
![](https://webcf.waybackmachine.org/web/20210428133810im_/https://habrastorage.org/getpro/habr/upload_files/972/aac/306/972aac306d9877251498b1b9528c8c80.jpg)
Всем привет, я Саша ... и я мейнфрейм (IBM, есть и другие) разработчик. Нет, я не пишу код на Cobol, а PL/I я в глаза не видел, зато в нашем продукте на z/OS мы используем Angular, C, C++, bash… ну это из того что знакомо всем, ещё у нас есть REXX и HLASM (High Level Assembler) как наследие прошлого. Да-да, у нас портирована Node.js под z/OS и много чего ещё, хотя ещё лет 5 назад «много чего ещё» не включало такие банальные вещи как Python или даже git.
Предлагаю развеять (или подтвердить) некоторые стереотипы про мейнфреймы и ещё хочу поделиться некоторыми интересными деталями. Берите расчёску для своей бороды и поехали...
Мейнфреймы старые и отжили прошлый век
Мейнфреймы действительно появились давно, но операционная система (последняя z/OS 2.5 2021 года) и железо z15 2019 года (уже анонсирован z16) всё ещё развиваются, используются и покупаются. Несмотря на то, что и операционная система, и железо новое они должны поддерживать всё, что работало и на предыдущих версиях... в предыдущие годы... в предыдущем веке. Так, например, адресация памяти у нас не 32 и 64 битная как у большинства устройств, что вы сейчас используете, а 24, 31 и 64 битная, потому что так шло развитие. Устройства хранения данных DASD всё ещё измеряются в треках и цилиндрах, хотя физически этого уже нет – сейчас это логическое разделение. Ленты уже практически не используются, хотя есть VTS (Virtual Tape Subsystem) которые эмулирует работу с лентами и доступ к ним.
В общем, обратная совместимость была реализована настолько хорошо, что каждый вспоминает истории о там как какая-нибудь Галина из какого-нибудь банка всё ещё пишет код на Cobol, Fortran, PL/I и что без неё всё рухнет.
С одной стороны, это круто, потому что код, написанный лет 30-40 назад, с большой вероятностью всё ещё работает (и как правило всё ещё используется и поддерживается), с другой стороны, это создаёт барьеры на разработку, так как и новое нужно поддерживать, и старое с постоянными проверки на версию компонентов, API и т.п. Таким образом, развитие отрасли в целом было замедленно.
Как можно работать в зелёном терминале?
Когда речь заходит о мейнфреймах все представляют зеленоватый экран с полосой “Command ==>” и кучей текста и на самом деле, вы правы и не правы одновременно.
![](https://webcf.waybackmachine.org/web/20210428133810im_/https://habrastorage.org/getpro/habr/upload_files/4bc/9b7/c7c/4bc9b7c7cb9a6e24573b2a17be4a97b0.png)
Этот зеленоватый экран называется эмулятор 3270, который предоставляет доступ к MVS через оболочку, например, ISPF … короче через эмулятор запускается некое подобие графической оболочки в терминале для доступа к сервисам и данных мейнфрейма (примерно так же как люди могут работать с Linux: через консоль или через GUI). Хоть GUI и выглядит консольно, он поддерживает нажатие мыши, кнопок на экране, выпадающие списки и другие вещи которыми вы пользуетесь каждый день во всех приложениях.
Но суть в том, что зеленоватый экран это всего лишь один из интерфейсов. Есть ещё USS (Unix Shell Subsystem) который выглядит как обычная урезанная Unix консоль, где у вас есть файлы и директории (на самом деле их нет, существуют только датасеты, а файлы и директории – просто данные в них … просто абстракция чтобы у бритых разработчиков не начали седеть волосы)
Есть доступ через Web интерфейс, например, open-source проект под названием Zowe. Основная идея была создать виртуальный рабочий стол (собственно проект изначально так и назывался: MVD – Mainframe Virtual Desktop) для работы с мейнфреймом, который не требовал бы установки никакого специфичного софта и не пугал бы молодых разработчиков.
В принципе, вместо операционной системы z/OS на LPAR(партицию) можно поставить z/Linux и скорее всего, если вы привыкли к Linux, вы не в первый день заметите что что-то не так.
Зачем нужны мейнфреймы если есть куча всего другого?
На самом деле, большинство компаний, использующих мейнфреймы используют их потому что так было ещё лет 30-40 назад и у них есть и инфраструктура, и кадры которые это всё поддерживают ... плюс миграция с платформы на платформу удовольствие не из дешёвых, а самое главное что ЭТО ВСЁ ЕЩЁ РАБОТАЕТ.
Так или иначе, с каждым годом некоторые компании отказываются от мейнфреймов, а некоторые наоборот их покупают(ЗАЧЕМ?), поэтому в целом за последние лет 20 число компаний, использующих мейнфреймы, почти не изменилось. Зато большинство компаний выросли и, как следствие, увеличилось число данных, которые необходимо обрабатывать, хранить и продавать.
Как уже было упомянуто, некоторые компании приобретают мейнфреймы не имея их ранее и, субъективно, на это есть всего одна причина: они надёжны. Да-да, мейнфреймы надёжны и летящие в меня камни, помидоры и негативные комментарии не изменят этого факта. Вот в чём заключается надёжность:
Софтовая. Т.к. большая часть софта была написана давно, она уже изрядно проверена временем. С большой долей вероятности код работающий 10,20,30 лет проработает ещё.
Физическая. Мейнфремы изначально разрабатываются чтобы переживать различные природные катастрофы, или хотя бы минимизировать потери, связанные с ними. Большинству читателей, думаю, это трудно понять, т.к. такие вещи мы видели только по телевизору, когда его ещё смотрели, да и то в других странах где-то далёко.
Кибербезопасность. Скорее всего самый аргументный аргумент. Невзирая на тот факт, что большинство новшеств из «обычного» мира в мейнфреймы приходят с запозданием, и даже если будет существовать какая-нибудь уязвимость, ею просто будет трудно воспользоваться. Скорее всего, если я дам свой логин и пароль любому из читателей 99,(9)% из вас даже не смогут залогиниться в систему в первые пару минут.
Свой собственный мир
Если честно, есть безумное множество вещей в мире мейнфреймов, о которых я хотел бы рассказать, но превращать статью в пересказ книги «Principles of Operation» я не вижу смысла, поэтому ещё упомяну наиболее необычные вещи.
Пользователи мейнфреймов платят за процессорное время.
Да-да, вы купили СВОЙ мейнфрейм, купили продукт (или подписку на продукт), а потом ещё в конце месяца, вместе с выплатами зарплат сотрудникам, уплаты коммунальных платежей отстёгиваете IBM денежку за процессорное время ... которое тратили продукты, за которые вы уже заплатили.
Возможно, именно поэтому высокоуровневые языки трудно приживаются в этом мире.
Более того, т.к. никто не хочет платить за процессорное время, появились разновидности «конфигурации» процессора (а точнее их аналога ядер), типо zAAP (для Java) или zIIP (для баз данных) – за которые пользователи уже не платят (или платят по более дешёвым тарифам). Причём вы ваше обычное «ядро» CP, например, можете поменять в zAAP если у вас много Java приложений, тем самым можно сэкономить пару тысяч долларов.
Датасеты наше всё
В мире мейнфреймов нет файлов и директорий, есть только датасеты.
Датасеты – есть всё. Т.е. единственный способ сохранить информацию на мейнфреймах это создать датасет и записать в него данные. Датасеты бывают разные и для разных целей.
Например, вы хотите сохранить текст «Hello world». Вы аллоцируете датасет, например, с фиксированой длиной в строке 80 и просто редактируя датасет, пишете в него всё что вам нужно. Но ведь фиксированая длинна в строке – не удобно, иногда может что-то не помещаться – тогда можно использовать датасет с переменной длиной строки. Вам нужны логически похожие вещи – вы можете аллоцировать датасет и создать в нём мемберы (будет выглядеть как директория с файлами, но нет – это просто один датасет). Хотите одновременно читать и писать данные? – всё можно, нужно использовать VSAM датасет и обращаться к нему через RLS (Record Level Sharing) – тогда вы сможете писать данные в одни блоки, а читать из других. И таких вещей тут не мало.
Что такое мейнфрейм?
Попробуйте объяснить, что такое «майнить биткоин» людям за 70, вот примерно так же я чувствую себя, когда пытаюсь объяснить что такое Мейнфрейм чуть больше чем всем. Я намерено не давал определение в начале статьи, потому что даже если сказать его – понятней людям не будет. Проще просто говорить, что мейнфрейм - это специфичный сервер ... или большой компьютер.
ZZZzzz
В мире мейнфреймов почти всё или начинается, или имеет в себе букву Z: z/OS, z/Linux, z/Storage, Zowe, shopZ, IZSME, z16, modernize. На это есть 2 версии: правильная и моя.
Правильная: Z от Zero downtime ... ещё в бородатые времена первых полётов в космос отказоустойчивость была очень важным показателем (будто сейчас Tier 4 дата центры рядом с мандаринами по одной цене стоят) и IBM решили заявить отказоустойчивость как один из ключевых показателей их систем. Собственно, и всё.
Моя: на самом деле буква Z звучит очень сексуально и добавляет +10 к надёжности и брутальности. Сравните: Кот vs zКот, Игорь vs Zигорь, Школа vs ШколаZ.
Заключение
Мейнфреймы живы, развиваются, но вряд ли догонят остальной мир в плане технологий (хотя рывок за последние лет 5 был большим ... догонять всегда проще чем прокладывать дорогу). У них есть очевидные недостатки (цена, нераспространённые технологии) так и свои скрытые достоинства.
P.S. Это моя первая статья на Habr, поэтому щадить меня не нужно, мне нужно учиться. Статья скорее всего выглядит рвано с быстрыми сменами тем, но очень трудно рассказывать про мейнфреймы, не вдаваясь в детали и конкретику некоторых вещей. Попробуйте объяснить людям 80+, что такое интернет и как им заказать еду на дом с предоплатой по карте, опустив объяснения про мышь, клавиатуру, браузер, сайт и т.д.
Комментарии 125
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.