Herculesは、IBMメインフレームコンピュータ(System/370、System/390、zSeries/System z)およびプラグ互換メインフレーム( Amdahlマシンなど)向けに作成されたソフトウェアを、他の種類のコンピュータハードウェア、特に低価格のパーソナルコンピュータ上で実行できるようにするコンピュータエミュレータです。開発は、メインフレームシステムプログラマーのRoger Bowlerによって1999年に開始されました。
Hercules はLinux、Microsoft Windows、FreeBSD、NetBSD、Solaris、macOSなど複数の親オペレーティングシステム上で動作し、オープンソースソフトウェアライセンスQPLの下でリリースされています。[ 3 ] CPU命令と一部の周辺機器のみをエミュレートするという点でBochsやQEMUに似ています。ベンダー (またはディストリビューター) はオペレーティングシステムを提供する必要があり、ユーザーはそれをインストールする必要があります。Hercules は、64 ビットz/Architectureサポートを組み込んだ最初のメインフレーム エミュレータでした。
このエミュレータはほぼすべてC言語で記述されています。開発者は、移植性の問題を避けるため、マシン固有のアセンブリコードの使用を除外しました。ただし、そのようなコードを使用すればパフォーマンスが大幅に向上する可能性はあります。例外は2つあります。1つは、SMPホストシステム上で複数のCPUをエミュレートする際に、プロセッサ間の一貫性を確保するためにハードウェア支援を使用している点です。もう1つは、オペレーティングシステムがそのようなサービスを提供するプラットフォーム、およびx86 / x86-64プロセッサ上で、リトルエンディアンとビッグエンディアンのデータを変換するためにアセンブラ支援を使用している点です。
Hercules は、新しいメインフレームでは動作しなくなった古いバージョンも含め、すべての IBM メインフレーム オペレーティング システムと技術的に互換性があります。ただし、多くのメインフレーム オペレーティング システムでは、合法的に動作させるためにベンダー ライセンスが必要です。OS /390、z/OS、VSE/ESA、z/VSE、VM /ESA 、z/VM、TPF/ESA、z/TPFなどの新しいライセンス オペレーティング システムも技術的には互換性がありますが、非常に限られた状況を除いて Hercules エミュレータ上で合法的に動作させることはできず[ 4 ] 、常に IBM からライセンスを取得する必要があります。並列シスプレックスを有効にするIBM のCoupling Facility制御コードとUTSも、動作させるためにライセンスが必要です。
Hercules上でライセンス費用なしで合法的に実行できるオペレーティングシステムには、以下のものが含まれます。

Herculesは、コードが移植可能であること(例えば、Linuxプロセッサアーキテクチャ間での移植性)、対称型マルチプロセッシング(SMP)をサポートしていること、および64ビットで「クリーン」であることを検証するための開発環境として使用できます。
また、現在および過去のメインフレームオペレーターやプログラマー、そして以前に経験のない人々からなる大規模なコミュニティがあり、彼らは趣味や学習目的でHerculesやパブリックドメインのIBMオペレーティングシステムを使用しています。[ 7 ]
Hercules はオープンソースであるため、誰でも独自のカスタマイズされたエミュレータを作成できます。たとえば、Hercules プロジェクトとは独立した開発者グループが、Hercules と無料で利用可能な MVS (および後の VM と DOS/VS) のクラシックバージョンの両方に変更を加えて、「S/380」[ 8 ]と呼ばれるハイブリッド メインフレーム アーキテクチャを実装し、オペレーティングシステムを、後のオペレーティングシステム バージョンとのある程度の 31 ビット (および 2016 年以降は 64 ビット) バイナリ互換性で強化しました (2018 年以降は 32 ビットもサポートされています)。
Herculesのエミュレーション性能が実際のメインフレームハードウェアとどの程度一致するのかを正確に判断するのは難しいが、性能特性が大きく異なることは当然である。これは、実際のメインフレームハードウェアを他のPCやサーバーと比較することの難しさ、そして具体的で制御された性能比較が不足していることが一因である。ライセンス供与されたIBMオペレーティングシステムについては、性能比較は法的に不可能である可能性が高く、また、それらのオペレーティングシステムはLinuxなどの他のオペレーティングシステムとは大きく異なる。
Hercules は処理性能をMIPSで表します。初期の System/360 および System/370 ハードウェアは古いため、ソフトウェアでコンピュータ アーキテクチャをエミュレートするオーバーヘッドが大きいにもかかわらず、中程度の性能のハードウェアで実行した場合、Hercules がそれらを上回ることは比較的妥当な推測です。ただし、より新しい、部分的にまたは完全に構成された System z マシンは、Hercules を大幅に上回ります。Hercules を実行する比較的高速なデュアル プロセッサ X86 マシンは、現実的な環境で両方のプロセッサを使用するコードに対して約 50 ~ 60 MIPS を維持でき、最先端の (2009 年初頭) PC クラス システムでは、持続レートが 300 MIPS まで上昇したと報告されています。Hercules は、合成命令ベンチマークやその他の小規模で計算集約型のプログラムなど、タイトなループで実行する場合、1200 MIPS を超えるピークを生成することができます。
TurboHerculesの共同創設者であるトム・レーマンは次のように書いています。
...弊社では、妥当な規模の負荷(標準パッケージで800 MIPS)を実行できます。対象のマシンがそれより大きい場合は、クアッドNehalemベースのパッケージで1600 MIPSまで拡張でき、来年初めには8ウェイNehalem EXベースのマシンが提供される予定で、これにより3200 MIPSに達する見込みです。それ以上の負荷は、複数のシステムで複製されます。[ 9 ]
Hercules は、1990 年代半ばのIBM の PC ベースのメインフレームよりも一般的に優れた性能を発揮します。これらのメインフレームの公称ピーク性能は約 29 MIPS です。より強力ではあるものの、依然としてエントリーレベルの IBM Multiprise 2000 および 3000 メインフレーム (これも 1990 年代) と比較すると、一般的な x86 ハードウェア上の Hercules は、性能の面ではミッドレンジのサーバーと見なされます。9672 第 1 世代以降のすべてのメインフレームに対して、Hercules は一般的に最もローエンドのシステムとなります。比較のために、2010 年頃のハイエンドの IBM zEnterprise 196システムは、マシンあたり 52,000 MIPS を超える性能を発揮でき、I/O 性能においてかなり優位性があります。[ 10 ]同じ数のエミュレートされた Sys Z プロセッサを使用した場合、z/PDT は Hercules より約 3 倍高速です。
パフォーマンス以外にも、メインフレームオペレーターにとって一般的に重要な非機能的なシステム属性があることに注意してください。これには、高可用性、フェイルオーバー、CPUとRAMのホットプラグ、I/Oメッシュを介したI/Oルーティング、システム移行、LPAR管理などが含まれます。たとえば、370/390/ESA/zアーキテクチャでは、4つの命令を使用してI/Oが実装されています。大規模で複雑なI/O操作を設定して周辺機器に処理を委譲できます。I/Oデバイスが操作の完了を通知するまで、CPUはI/Oに関与しません。この結果、メインフレームシステムでは、「CPUサイクル」の大部分がメインフレームCPU自体ではなく、I/O周辺機器に組み込まれたさまざまなプロセッサで使用されます。メインフレームCPUは、それ自体が「計算」を行うというよりは、データ移動を調整するオーケストラの指揮者のような役割を果たします。最も単純なI/Oデバイスはエミュレートできますが、複雑なシステムは課題となります。
2009年、ロジャー・ボウラーは、ハーキュリーズ技術を商業化するために、フランスに拠点を置くTurboHercules SASを設立した。2009年7月、TurboHercules SASはIBMに対し、TurboHerculesが販売するシステムで使用するために、顧客にz/OSのライセンスを供与するよう求めた。IBMは同社の要求を拒否した。[ 11 ] 2010年3月、TurboHercules SASは、IBMがメインフレームハードウェアを自社のメインフレームオペレーティングシステムに抱き合わせ販売することでEUの独占禁止法に違反しているとして、欧州委員会の規制当局に苦情を申し立て、ECは予備調査を開始した。[ 12 ] 2010年11月、TurboHerculesはマイクロソフト社から投資を受けたことを発表した。[ 13 ] 2011年9月、ECの規制当局は調査を中止し、措置を講じなかった。[ 14 ]