Операционная система MVS 3.8j, являющаяся классическим продуктом эпохи мейнфреймов IBM, продолжает привлекать внимание энтузиастов и профессионалов в области информационных технологий. Одним из ключевых этапов установки и настройки данной операционной системы является процесс sysgen - системная генерация, с помощью которой настраивается базовая конфигурация системы под конкретное оборудование и нужды пользователя. Однако традиционный процесс sysgen требует много времени и ручных действий, что существенно усложняет внедрение и тестирование MVS 3.8j в современных условиях.
В данной области большую популярность получил проект, вдохновлённый трудами Джея Мозли - sysgen automation, автоматизирующий процесс сборки MVS 3.8j с помощью современных инструментов и технологий. Проект доступен на GitHub под названием MVS-sysgen/sysgen и служит удобной платформой для создания, модификации и поддержки системного ядра MVS 3.8j с минимальной долей ручного вмешательства. Главным элементом sysgen automation является скрипт sysgen.
py, написанный на Python, который обеспечивает поэтапную сборку системы, включая установку необходимых компонентов и выполнение конфигурационных шагов. Благодаря такому подходу пользователи освобождаются от необходимости тратить недели и месяцы на сложные настройки, которые ранее могли стать серьёзным препятствием. Основа работы sysgen.py - это последовательное выполнение заданных скриптов и конфигураций, которые адаптированы под современное эмулирующее ПО Hercules. Использование Hercules, в частности версии SDL 4.
5 и выше, позволяет запускать виртуальный мейнфрейм на слабо ресурсовом современном оборудовании под Linux-средой. Проект рекомендует использовать дистрибутивы Linux с поддержкой sudo, и при этом выделяет, что запуск от имени root может привести к проблемам с использованием ресурсов. Одним из важных преимуществ системы является поддержка Docker-контейнеров, что позволяет быстро развернуть и запустить MVS/CE (Community Edition) без необходимости глубокой настройки виртуальной машины. Контейнеры упрощают установку и масштабирование, позволяя эффективно интегрировать MVS с современными CI/CD пайплайнами и гибко управлять окружением. Docker-образ разработан с учётом всех нюансов запуска, включая проброс необходимых портов для доступа к 3270-терминалу, FTP, Telnet и другим сервисам.
Это обеспечивает удобный доступ к системе для пользователей с различных платформ. Помимо автоматизации базовой системы, в процессе sysgen предусмотрена установка ряда дополнительных, важных для работы компонентов. В их числе разработчик выделяет BREXX - расширенную версию REXX, RAKF для управления безопасностью, RFE для расширенного функционала файловой системы, а также Wally ISPF, современный интерактивный интерфейс пользователя, сочетающий в себе классические возможности и современные улучшения. Для более точной настройки и автоматизации доступны параметры запуска скрипта. Можно указать имя пользователя, пароль, настроить таймауты для предотвращения зависаний, работать с профилями безопасности и создавать резервные копии промежуточных состояний.
Такая гибкость позволяет удобно интегрировать sygen в комплекс автоматизации или использовать его как самостоятельный инструмент для обучения и экспериментов. Особое внимание уделено контролю над прерываниями и ошибками при выполнении процесса sysgen. Многочисленные баги в Hercules могут приводить к зависаниям или аварийному завершению. Для борьбы с этим предусмотрен цикл в bash с перезапуском sysgen до успешного завершения. Это повышает стабильность и позволяет обойти существующие ограничения эмулятора.
Более того, проект вобрал в себя немало доработок, добавленных после оригинальной версии Jay Moseley. В частности, внедрены дополнительные пользовательские модули, оптимизированы параметры безопасности, усовершенствована работа с Net и JES2 - подсистемами управления заданиями и сетевыми соединениями в MVS. Это существенно расширяет возможности системы и облегчает её использование в современных условиях. Для работы с устройствами виртуального оборудования важна корректная настройка DASD, картоприёмников, принтеров и перфокарт. В конфигурационных файлах подробно настроены параметры с эмуляцией разных видов устройств.
JES2 управляет распределением заданий и ресурсами, что позволяет гибко задавать классы заданий и приоритеты. Также предусмотрены специальные и уникальные настройки, например, для системных задач или для контроля за разрешениями на консольных командах. В общем, MVS-sysgen/sysgen от Jay Moseley - это пример успешного преемства и развития классических технологий с использованием современных средств разработки, автоматизации и эмуляции. Он позволяет сделать освоение и использование одной из легендарных ОС мейнфреймов полностью управляемым и доступным для исследовательских и образовательных целей. Проект открыт для сообщества и продолжает развиваться, пропуская в себя новые идеи и исправления.
С его помощью можно погрузиться в изучение истории информационных технологий, понять устройство многозадачной операционной системы и научиться применять самые современные подходы к её работе. Благодаря широкому распространению и мощному коммьюнити поддерживать и улучшать sysgen automation становится всё проще, открывая путь новым поколениям специалистов и энтузиастов. Таким образом, осваивая sysgen с помощью проекта Jay Moseley, можно максимально упростить сложный и трудоёмкий процесс системной генерации MVS 3.8j. Эта автоматизация не только экономит время, но и уменьшает риск ошибок, создавая условия для стабильной и гибкой работы операционной системы.
Использование современных инструментов, таких как Python, Docker и Hercules, в сочетании с глубоким пониманием архитектуры MVS, позволяет адаптировать её под современные потребности и задачи. Обеспечив простоту развёртывания и настройки, проект стимулирует развитие классических технологий и расширяет горизонты для инноваций в сфере мейнфрейм-эмуляции и системного программирования. .