наверх

«Открытые системы» , № 01, 2006 468 прочтений

Мэйнфрейм на ПК

Современной альтернативой применению мэйнфреймов IBM и ЕС ЭВМ может служить бесплатное программное обеспечение с открытым кодом, обеспечивающее эмуляцию мэйнфреймов разных поколений от S/360 до S/390...

Михаил Кузьминский

Современной альтернативой применению мэйнфреймов IBM и ЕС ЭВМ может служить бесплатное программное обеспечение с открытым кодом, обеспечивающее эмуляцию мэйнфреймов разных поколений — от S/360 до S/390, а также zSeries — на различных компьютерах с разными операционными системами и в первую очередь на х86-совместимых системах (в том числе на персональных компьютерах) под управлением ОС Linux или Windows.

При этом не требуется никакой дополнительной специальной аппаратуры, а в эмулируемой среде возможна работа различных операционных систем, в том числе VM/370 и MVS 3.8, также бесплатно доступных в Internet. Это обеспечивает, в частности, работу унаследованных приложений — зачастую с большей производительностью, чем на прежних мэйнфреймах.

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

Краткий курс истории ЭВМ

Наша страна обладает уникальным наследием — культурным, научным и иным, — которое, как водится, она не использует, а разрушает. И все хорошее у нас исхитряются сделать одновременно плохим. Так и эпоха «мэйнфреймов» ЕС ЭВМ имела как серьезные положительные, так и отрицательные стороны. Можно сказать, что она началась в 70-е годы, закончилась в начале 90-х годов теперь уже прошлого века. Хотя ЕС ЭВМ и устаревшие, приобретаемые как «бывшие в употреблении» мэйнфреймы, на удивление активно использовались в России и в середине 90-х, и даже позднее.

Несколько лет назад в телепередаче, посвященной одному из центров противовоздушной обороны нашей страны, автор увидел на экране внешние устройства номенклатуры ЕС ЭВМ. Они к тому времени не выпускались уже много лет! Очевидно, они имели многократный ЗИП, т.е. набор механических компонентов, микросхем и ТЭЗов (для тех, кто помоложе, расшифруем — «типовой элемент замены», а проще говоря, плата с электроникой). Понятно и то, почему это имело место: нежелание использовать ни единого транзистора иностранного производства плюс отягощенность унаследованными приложениями.

В первую очередь такая техника сохранялась в «почтовых ящиках», военных организациях, а также на некоторых крупных предприятиях. В последнем случае часто (но не всегда) ЕС ЭВМ заменялись «бывшими в употреблении» мэйнфреймами IBM, на которые часто ставили устаревшие операционные системы для ЕС ЭВМ. Зато унаследованные приложения надежно работали.

Надо отметить, подобные унаследованные приложения встречаются не только в нашей стране. К примеру, в прошлом году на электронном списке рассылки, посвященном применению ОС MVS, работающей под эмулятором на ПК, автору встретилось письмо сотрудника одной западной коммерческой компании, собиравшейся упразднять свой мэйнфрейм. У них, оказывается, имеется важное унаследованное приложение, разработанное давным-давно, написанное еще на Фортране IV. И теперь они вопрошали, как бы им перенести все это хозяйство на ПК…

В начале 90-х годов IBM упустила шанс хоть частично поддержать тающие традиции применения ЕС ЭВМ (они могли бы эффективно применяться в рамках международной компьютерной сети European Academic and Research Network, европейском аналоге BITNET) путем их замены своей «бывшей в употреблении» техникой. В результате культура вычислительных центров коллективного пользования в условиях тотального перехода к ПК была в нашей стране почти полностью утеряна, а разработчики программного обеспечения ушли в другие сферы или уехали за рубеж.

Как это ни удивительно, организации, работающие с подобными компьютерными системами, остаются и по сей день (речь здесь не идет о тех немногих, кто работает с действительно современными мэйнфреймами и реально нуждается в их ресурсах).

Между тем уже много лет развивается альтернативный подход — эмуляция мэйнфреймов IBM. Первоначально для этого требовалось приобретение специальной аппаратуры — плат, которые могли бы устанавливаться в IBM RS/6000 или даже в ПК. Коммерческие решения подобного рода предлагает, например, российская компания «Гетнет».

Однако появилась разработка (и при том не коммерческий продукт, а инструментарий категории Open Source), позволяющая эмулировать мэйнфреймы IBM в среде ОС Linux на обычном ПК без всякой дополнительной аппаратуры. Следовательно, ее можно использовать на х86-совместимых серверах (в том числе многопроцессорных), которые имеют вполне удовлетворительные для очень многих приложений ресурсы по сравнению с более старыми мэйнфреймами IBM; про ЕС ЭВМ и говорить нечего. Этот замечательный инструментарий называется Hercules.

Косвенно повышению интереса к Hercules могут способствовать появившиеся в Сети слухи о том, что в перспективе серверы zSeries, возможно, будут строиться на процессорах Power6, в архитектуру которых будет осуществляться двоичная трансляция кодов z/Architecture. В компьютерной истории (в том числе в истории мэйнфреймов разных фирм) есть примеры того, что происходит на следующих этапах.

Сила «Геркулеса»

Эмуляторами современный компьютерный мир не удивить. Однако Hercules отличается высоким качеством и широтой охвата различных архитектур многих поколений мэйнфреймов IBM.

Первая версия Hercules была создана в 1999 году. Ее главным разработчиком был Роджер Боулер, один из системных инженеров IBM OS/390. Как и во многих других проектах категории Open Source, над Hercules трудилось большое число разработчиков. Затем проект возглавил Джей Мэйнард. Среди других разработчиков необходимо отметить в первую очередь Яна Джейгера, которому принадлежат, в частности, расширения Hercules, рассчитанные на 64-разрядную z/Architecture.

Последняя версия, Hercules 3.03.1, появилась в декабре 2005 года (она доступна, например, на сайте www.hercules-390.org). Hercules инсталлируется на различные аппаратно-программные платформы, в том числе на Sun SPARC, Alpha 21x64, Intel/HP IA-64, PowerPC (на G5 с MacOC X).

Но большинство инсталляций осуществляется все-таки на платформе х86. Эмулятор может работать и в Windows (98/NT/2000/XP, для эксплуатации более старых версий Hercules требуется CygWin) и в MacOS X (версия от 10.3 и старше); изначально «родной» средой обитания Hercules является Linux. Имеются и графические надстройки, например, HercGUI 1.9.5 для Windows (www.softdevlabs.com/Hercules/hercgui-index.html).

При этом требования Hercules как к операционной системе, так и к ресурсам компьютера очень скромны. К примеру, более старая версия Hercules, поставляемая с дистрибутивом ОС Turnkey MVS, может работать с ядрами от Linux 2.2 и выше, так что подойдут даже совсем древние дистрибутивы типа RedHat 6.0. Собственно, необходима поддержка pthreads, а также gcc. В требованиях к последней версии Hercules указано ядро Linux 2.4 и gcc версии от 2.95 и старше.

Hercules не требует много оперативной памяти и эффективно задействует много процессоров сервера благодаря использованию pthreads [1]. Многонитевая структура позволяет осуществлять совмещение операций ввода/вывода и процессорной активности (теоретически Hercules следует считать приложением, активно использующим процессор). Многонитевая структура позволяет также естественным образом эмулировать многопроцессорные мэйнфреймы IBM, для чего можно задействовать Pentium 4 с возможностью HyperThreading, или современные двухъядерные х86-совместимые микропроцессоры, или вообще сервер SMP-архитектуры (последнее, естественно, дает в общем случае наибольшую производительность).

На www.hercules-390.org приводятся полезные для работы с Hercules оценки. Так, при использовании Intel Celeron/300 МГц достигается производительность процессора мэйнфрейма на уровне 1-2 MIPS. (Величина MIPS, Millions Instructions Per Second, для мэйнфреймов IBM имеет вполне конкретный смысл: она относится к вполне определенной смеси команд; ранее это была одна из так называемых «смесей Гибсона».) Напомним, что IBM 3033 (и аналогичная ЕС 1066, одна из наиболее мощных советских ЕС ЭВМ) обладали производительностью как раз этого порядка, поэтому, отвлекаясь от ввода/вывода, можно ожидать и сопоставимые с IBM 3033 времена реакции в операционных системах, работающих поверх Hercules.

В случае применения Hercules для работы с более мощной средой OS/390 рекомендуется использовать персональный компьютер помощнее с процессором частотой не менее 1 ГГц. Так, система с двумя процессорами Pentium III способна эмулировать процессоры, давая производительность свыше 5 MIPS. Минимальная рекомендация для z/OS и Linux/390 — Pentium 4 с тактовой частотой от 2 ГГц, на котором достигается около 20 MIPS. Минимальная производительность процессора zSeries сегодня — около 80 MIPS, старшие же однопроцессорные модели имеют порядка 500 MIPS. Необходимо отметить также, что с точки зрения производительности для моделирования 64-разрядной архитектуры zArchitecture все-таки лучше использовать 64-разрядные, а не 32-разрядные микропроцессоры, особенно, если требуется применять свыше 2-3 Гбайт оперативной памяти. Впрочем, х86-64 в реализациях AMD и Intel и так скоро вытеснит IA-32/x86.

Приведенные оценки интересны для понимания уровня производительности процессоров мэйнфреймов. Можно еще добавить, что без эмуляции процессоры х86, естественно, работают еще быстрее. Так, тесты Linpack (n=100) давали для ЕС-1066 около 1 MFLOPS. Этот результат, полученный автором полтора десятилетия назад, был представлен в официальной таблице тестов Джека Донгарры; i486DX/33 имел чуть более высокую производительность.

Конечно, применение мэйнфреймов для интенсивных расчетов с плавающей запятой стало бессмысленным еще раньше; реальные задачи для мэйнфреймов связаны с вводом/выводом [2]. На упомянутых выше ПК с использованием Hercules достигается производительность ввода/вывода на уровне 50 excp в секунду (excp — это команда «выполнить канальную программу»); при использовании аппаратной поддержки RAID — свыше 500 excp в секунду. Представляется, что Hercules можно использовать, если нет очень высоких требований к производительности ввода/вывода и надежности.

Используемый Hercules механизм эмуляции процессоров достаточно очевиден: команды S/370, ESA/390 или z/Architecture (в зависимости от выбранного режима работы) эмулируются командами x86. В эмуляции устройств ввода/вывода задействованы устройства ПК. Так, жесткие диски (например, IBM 3390) моделируются файлами на дисках ПК.

Для преобразования в формат AWSTAPE для мэйнфреймов имеется специальная программа tapeconv, доступная в исходных кодах. Что касается собственно физической передачи файлов с мэйнфрейма на ПК, то мы полагаем эту задачу решенной: для этого можно применять, например, TCP/IP. Для ЕС ЭВМ, не имевших подобных возможностей, в свое время в нашей стране была разработана куча соответствующих «самоделок».

В отличие от лобового решения через дамп диска, утилита dasdload позволяет осуществлять гораздо более тонкие манипуляции по загрузке файлов на виртуальные диски Hercules. Ее вызов в Linux выглядит следующим образом:

dasdload [ключи] имя_управляющего_файла имя_файла msglevel,

где имя_управляющего_файла указывает на Linux-файл, в котором описано, какие файлы и как загружать на образ диска, заданного параметром имя_файла, а msglevel — это целое число от 0 до 5, управляющее уровнем детализации сообщений, выдаваемых при загрузке файлов на диск. Попутно dasdload создает и сам файл образа диска (имя_файла), т.е. выполняет и функции утилиты dasdinit, поэтому ключи dasdload просто совпадают с задаваемыми для dasdinit.

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

Первая строка управляющего файла имеет следующий формат:

имя_тома тип_устройства[-модель] [число_цилиндров[ipltext]],

где число_цилиндров задает размер жесткого диска в дисковых цилиндрах (если опустить этот параметр, или указать 0 или *, будет использоваться стандартный размер), ipltext может задавать имя файла с текстом IPL-программы в обычном «перфокарточном» формате, используемом IBCDASDI/ICKDSF.

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

dsname method units pri sec dir dsorg recfm lrecl blksize keylen.

Здесь dsname — имя набора данных, method указывает на метод его загрузки; при этом доступны следующие варианты:

  • XMIT filename — набор данных загружается из выгруженного PDS-файла, созданного командой TSO XMIT;
  • SEQ filename — последовательный набор данных загружается из двоичного файла с dsorg=PS или DA и recfm=F или FB;
  • EMPTY — создается пустой набор данных;
  • DIP — создается журнал машинных ошибок LOGREC;
  • CVOL — создается каталог SYSCTLG, содержащий минимум записей, нужных для IPL-программы операционной системы OS/360;
  • VTOC — задается размер и расположение оглавления тома; если это предложение опущено, том создается с минимальным числом дорожек и располагается после последнего набора данных на диске.

Смысл последующих параметров вполне понятен всем, кто знаком с JCL: units — это единицы измерения требуемой длины файла; pri и sec — соответственно первичное и вторичное количество цилиндров/дорожек; dir — число блоков оглавления PDS, и т.д.

Автору «посчастливилось» испытать, как ведут себя эмулированные файлами жесткие диски при сбоях, когда во время работы домашнего ПК c Linux при загруженной под Hercules операционной системе MVS отключилось электропитание. Команда fsck отработала «чисто», при работе с жестким диском MVS были вызваны аналогичные программы Hercules, однако в результате в оглавлении тома VTOC все-таки оказались ошибки, препятствующие нормальной работе. Вручную корректировать VTOC не хотелось; здесь бы пригодилась отечественная разработка CORVTOC, которой у автора не нашлось. В результате быстрее оказалось восстановить заново весь том.

Кроме указанных утилит, Hercules содержит еще ряд, в том числе, dasdls (дает список наборов данных на томе), dasdcat (отображает список разделов PDS и содержимое текстовых разделов), dasdpdsu (разгрузка разделов PDS) и др.

Но наибольший интерес представляет независимая разработка, загружаемая под Hercules программа ZZSA. Это автономная утилита с удобным экранным интерфейсом, разработанная Яном Джейгером (см. www.cbttape.org/~jjaeger). Она позволяет редактировать данные на жестком диске и оказывается полезна, например, в случае возникновения проблем в ОС, если эти проблемы можно устранить путем редактирования системных наборов данных. ZZSA позволяет просматривать список устройств, получать оглавление тома и список разделов PDS, просмотреть и изменить последовательный файл или раздел PDS, а также отобразить или изменить произвольную запись на жестком диске.

Доступные операционные системы

Большинство возможностей использования Hercules обусловлено наличием свободно доступных версий операционных систем для мэйнфреймов IBM. Среди них можно указать на OS/360 версии 21.8 (PCP, MFT и MVT, доступны на сайте open360.copyleft.de), DOS/360, TOS/360, TSS/370 (www.ibiblio.org/jmaynard), DOS/VS 3.4 (www.conmicro.cx/hercules/dosrel34.zip), VM/370 R6 (www.cbttape.org/vm6.htm).

Однако основным плюсом Hercules (по крайней мере, для нашей страны), является свободно доступная версия MVS-3.8j (включающий ее дистрибутив, Turnkey MVS, можно загрузить с www.ibiblio.org/jmaynard/turnkey-mvs-3.zip). Эта версия применялась пользователями IBM в начале 80-х годов. На ЕС ЭВМ была доступна и более современная версия МВС-2.1, аналог MVS/SP, однако в большинстве вычислительных центров использовались даже более старые, чем MVS-3.8, версии ОС. В любом случае MVS 3.8 имеет очень много общего с современными S/390 и даже z/OS, что позволяет, в частности, разрабатывать для последних программы в среде Turnkey MVS.

Надо сказать, что и сегодня, четверть века спустя, MVS 3.8 по ряду параметров лучше, чем Unix/Linux. Скажем, в некоторых многопроцессорных RISC-серверах однократный сбой всего одного из процессоров способен привести к перезагрузке операционной системы. Автору не раз доводилось видеть обработку машинных ошибок в MVS. Например, на ЕС 1045, имеющей всего один процессор, при его сбое (отказ одного из ТЭЗов) загорался красный сигнал машинной ошибки. Этот сигнал прерывания сбрасывали, и компьютер с MVS продолжал успешно работать!

В составе Turnkey MVS отсутствуют некоторые лицензионные компоненты, такие, как RACF или CICS. С другой стороны, в Turnkey MVS имеется ряд расширений, например, команды XMIT370/RECV370 (совместимые с известной командой TRANSMIT из TSO/E), или заплата для решения проблемы 2000 года в сортировке. Включена, в частности, поддержка жестких дисков IBM 3375, 3380 и 3390. Последние модификации осуществил Фолкер Бандтке. Он является главным ответственным за подготовку дистрибутива Turnkey MVS, который, кроме готовой к использованию версии IBM MVS 3.8 и компонентов ее дистрибутива, необходимой при генерации собственной пользовательской версии MVS, включает еще много программных разработок, выполненных вне IBM.

В Turnkey MVS имеется и TSO, что позволяет сразу начать работу в диалоговом режиме. Кроме стандартного заведенного пользователя ibmuser, уже подключены еще четыре пользователя, от herc01 до herc04. Поскольку в MVS 3.8 нет прекрасного программного продукта ISPF, с которым работали обычно все TSO-пользователи отечественной МВС-2.1, нужно воспользоваться другой разработкой — RPF (Rob?s Programming Facility), выполненной Робом Принсом. Этот командный процессор выполнен в стиле ISPF и имеет, кроме всего прочего, интерфейсы к известным в нашей стране программным продуктам Librarian и ROSCOE.

Ряд программ, входящих в Turnkey MVS, пользователям ЕС ЭВМ не известен. Так, в готовой версии Turnkey MVS применяются средства автоматизации работы оператора, которые, например, дают автоматические ответы (команды REPLY) на некоторые запросы MVS к оператору. На мэйнфреймах некоторые компоненты современных «самоуправляемых систем» появились уже много лет назад.

Большое количество свободно доступных программных продуктов, сделанных вне IBM, распространялось на магнитных лентах (www.cbttape.org) и применялось членами SHARE, организации пользователей мэйнфреймов IBM. Богатая коллекция таких программ включена в Turnkey MVS; примером является уже упомянутая ZZSA.

Turnkey MVS продолжает развиваться вне IBM. Стоить упомянуть, в частности, проекты поддержки в этой операционной системе стека TCP/IP (www.prycroft6.com.au/vs2sw) и компилятора gcc (www.spftools.com/downloads/gccmvs.htm).

Штука посильнее «Фауста» Гете

Hercules вместе с имеющимися операционными системами может служить для самых разных целей. Это и задачи ИТ-образования, и тренинг операторов и программистов, и собственно разработка программного обеспечения. Конечно, для двух последних областей применения возможности, например, Hercules + Turnkey MVS ограничены по сравнению, скажем, с z/OS. Однако в качестве операционной системы, работающей под Hercules, может выступить любая система для мэйнфреймов, в том числе и z/OS — была бы лицензия. IBM сделала великое дело, открыв коды MVS 3.8j, хотя можно встретить и критику корпорации — за то, что она не поступила аналогичным образом с более свежими версиями MVS.

Наконец, возможно применение Hercules для работы унаследованных приложений. Многие старые приложения даже для ЕС ЭВМ смогут работать в Turnkey MVS. Главное, что нужно при этом иметь — это русифицированный клиент tn3270.

И последнее. Как справедливо отмечено в [1], люди никогда не забывают первую любовь. Когда автор, два десятилетия проработавший в качестве системного программиста на ЕС ЭВМ, а затем на мэйнфреймах IBM, увидел на экране домашнего ПК знаменитое сообщение IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8. VS2, возникло такое острое чувство ностальгии… Опытных системных программистов ЕС ЭВМ это может привлекать как игрушка гораздо более «крутая», чем любой Quake.

Литература
  1. Moshe Bar, Byte, Aug. 1st, 2000, http://www.byte.com/documents/s=429/ byte20000801s0002/
  2. Кузьминский, Z-архитектура. «Открытые системы», № 10, 2001.
Страница 1 2

Комментарии


Ранее в разделе

23/12/2011 №10

Анонс содержания
«Открытые системы»

Подписка:

«Открытые системы»

на месяц

c