Hercules — это компьютерный эмулятор, позволяющий программному обеспечению, написанному для мэйнфреймов IBM ( System/370 , System/390 и zSeries/System z ) и для совместимых с плагином мэйнфреймов (таких как машины Amdahl ), работать на других типах компьютерного оборудования, в частности на недорогих персональных компьютерах . Разработка началась в 1999 году Роджером Боулером, программистом мэйнфреймов.
Hercules работает под управлением нескольких родительских операционных систем , включая Linux , Microsoft Windows , FreeBSD , NetBSD , Solaris и macOS, и выпускается под лицензией программного обеспечения с открытым исходным кодом QPL . [3] Он аналогичен Bochs и QEMU в том, что эмулирует только инструкции ЦП и некоторые периферийные устройства. Поставщик (или дистрибьютор) по-прежнему должен предоставлять операционную систему, а пользователь должен ее установить. Hercules был первым эмулятором мэйнфреймов, включившим поддержку 64-битной архитектуры z/Architecture .
Эмулятор написан почти полностью на языке C. Его разработчики исключили использование машинно-специфичного ассемблерного кода, чтобы избежать проблем с переносимостью, хотя такой код мог бы значительно повысить производительность. Есть два исключения: Hercules использует аппаратные средства для обеспечения межпроцессорной согласованности при эмуляции нескольких ЦП на хост-системах SMP, а Hercules использует средства ассемблера для преобразования между данными little-endian и big-endian на платформах, где операционная система предоставляет такие услуги, и на процессорах x86 / x86-64 .
Hercules технически совместим со всеми операционными системами мэйнфреймов IBM, даже со старыми версиями, которые больше не работают на новых мэйнфреймах. Однако для легального запуска многих операционных систем мэйнфреймов требуются лицензии поставщиков. Более новые лицензированные операционные системы, такие как OS/390 , z/OS , VSE/ESA , z/VSE , VM/ESA , z/VM , TPF/ESA и z/TPF, технически совместимы, но не могут легально работать на эмуляторе Hercules, за исключением очень ограниченных обстоятельств [ требуется ссылка ] , и они всегда должны быть лицензированы IBM. Управляющий код Coupling Facility от IBM, который позволяет Parallel Sysplex , и UTS также требуют лицензий для запуска.
Операционные системы, которые можно законно запускать на Hercules без затрат на лицензию, включают:
Hercules можно использовать в качестве среды разработки для проверки переносимости кода (например, между архитектурами процессоров Linux), поддержки симметричной многопроцессорной обработки (SMP) и его «чистоты» для 64-разрядной архитектуры.
Существует также большое сообщество нынешних и бывших операторов и программистов мэйнфреймов, а также тех, у кого нет предварительного опыта, которые используют Hercules и общедоступные операционные системы IBM в качестве хобби и для обучения [ нужна ссылка ] . Большинство навыков, приобретенных при изучении классических версий операционных систем мэйнфреймов IBM, по-прежнему актуальны при переходе на лицензированные машины IBM, работающие под управлением последних версий [ нужна ссылка ] .
Открытый исходный код Hercules означает, что любой может создать свою собственную версию эмулятора. Например, группа разработчиков, независимая от проекта Hercules, реализовала гибридную архитектуру мэйнфрейма, которую они назвали «S/380» [6], используя модификации как Hercules, так и свободно доступных классических версий MVS (и более поздних VM и DOS/VS), улучшая операционные системы некоторой степенью 31-битной (а с 2016 года и 64-битной) двоичной совместимости с более поздними версиями операционных систем (а с 2018 года также поддерживается 32-битная версия).
Трудно точно определить, как производительность эмуляции Hercules соответствует реальному оборудованию мэйнфрейма, но характеристики производительности, как и следовало ожидать, сильно отличаются. Это частично связано со сложностью сравнения реального оборудования мэйнфрейма с другими ПК и серверами, а также с отсутствием конкретных контролируемых сравнений производительности. Сравнения производительности, вероятно, юридически невозможны для лицензированных операционных систем IBM, и эти операционные системы сильно отличаются от других операционных систем, таких как Linux.
Hercules выражает свою производительность обработки в MIPS . Из-за возраста более раннего оборудования System/360 и System/370 можно с относительной уверенностью предположить, что Hercules превзойдет их при работе на умеренно мощном оборудовании, несмотря на значительные накладные расходы на эмуляцию компьютерной архитектуры в программном обеспечении. Однако более новые, частично или полностью настроенные машины System z превосходят Hercules с большим отрывом. Относительно быстрая двухпроцессорная машина X86, работающая под управлением Hercules, способна поддерживать около 50–60 MIPS для кода, который использует оба процессора в реалистичной среде, с устойчивыми скоростями, достигающими заявленных 300 MIPS на передовых (начало 2009 г.) системах класса ПК. Hercules может выдавать пики более 1200 MIPS при работе в плотном цикле, например, в синтетическом тесте команд или с другими небольшими, ресурсоемкими программами.
Том Леманн, соучредитель TurboHercules, написал:
...Мы можем запускать разумно большую нагрузку (800 MIPS с нашим стандартным пакетом). Если рассматриваемая машина больше этого, мы можем масштабироваться до 1600 MIPS с нашим четырехъядерным пакетом на основе Nehalem, и нам обещали 8-канальную машину на основе Nehalem EX в начале следующего года, которая должна вывести нас на отметку 3200 MIPS. Все, что больше этого, воспроизводится набором систем. [7]
Hercules в целом превосходит мэйнфреймы IBM на базе ПК середины 1990-х годов, которые имеют заявленную пиковую производительность около 29 MIPS. По сравнению с более мощными, но все еще начального уровня мэйнфреймами IBM Multiprise 2000 и 3000 (также 1990-х годов), Hercules на типичном оборудовании x86 можно было бы считать сервером среднего уровня с точки зрения производительности. Для каждого мэйнфрейма после 9672 Generation 1, Hercules, как правило, будет самой дешевой системой. Для сравнения, высокопроизводительные системы IBM zEnterprise 196 эпохи 2010 года могут обеспечить более 52 000 MIPS на машину, и они имеют значительные преимущества в производительности ввода-вывода. [ необходима цитата ] При том же количестве эмулируемых процессоров Sys Z z/PDT примерно в 3 раза быстрее, чем Hercules. [ необходима цитата ]
Обратите внимание, что существуют и другие нефункциональные системные атрибуты [ какие? ], помимо производительности [ необходимо разъяснение ], которые обычно важны для операторов мэйнфреймов.
В 2009 году Роджер Боулер основал TurboHercules SAS, базирующуюся во Франции, для коммерциализации технологии Hercules. В июле 2009 года TurboHercules SAS обратилась к IBM с просьбой лицензировать z/OS для своих клиентов для использования в системах, продаваемых TurboHercules. IBM отклонила запрос компании. [8] В марте 2010 года TurboHercules SAS подала жалобу в регулирующие органы Европейской комиссии , утверждая, что IBM нарушила антимонопольные правила ЕС посредством предполагаемой привязки оборудования мэйнфрейма к своей операционной системе мэйнфрейма, и ЕК начала предварительное расследование. [9] В ноябре 2010 года TurboHercules объявила, что получила инвестиции от корпорации Microsoft. [10] В сентябре 2011 года регулирующие органы ЕК закрыли свое расследование без каких-либо действий. [11]