The emulator is written almost entirely in C. Its developers ruled out using machine-specific assembly code to avoid problems with portability even though such code could significantly improve performance. There are two exceptions: Hercules uses hardware assists to provide inter-processor consistency when emulating multiple CPUs on SMP host systems, and Hercules uses assembler assists to convert between little-endian and big-endian data on platforms where the operating system provides such services and on x86/x86-64 processors.
Operating systems status
Hercules is technically compatible with all IBM mainframe operating systems, even older versions which no longer run on newer mainframes. However, many mainframe operating systems require vendor licenses to run legally. Newer licensed operating systems, such as OS/390, z/OS, VSE/ESA, z/VSE, VM/ESA, z/VM, TPF/ESA, and z/TPF are technically compatible but cannot legally run on the Hercules emulator except in very limited circumstances, and they must always be licensed from IBM. IBM's Coupling Facilitycontrol code, which enables Parallel Sysplex, and UTS also require licenses to run. Operating systems which may legally be run, without license costs, on Hercules include:
The MUSIC/SP operating system may be available for educational and demonstration purposes upon request to its copyright holder, McGill University. Some of MUSIC/SP's features, notably networking, require z/VM. However, a complete demonstration version of MUSIC/SP, packaged with the alternative Sim390 mainframe emulator, is available.
There is no known legal restriction to running open-source operating systems Linux on IBM Z and OpenSolaris for System z on the Hercules emulator. They run well on Hercules, and many Linux on IBM Z developers do their work using Hercules. Several distributors provide 64-bit z/Architecture versions of Linux, and some also provide ESA/390-compatible versions. Mainframe Linux distributions include SUSE Linux Enterprise Server, Red Hat Enterprise Linux, Debian GNU/Linux, CentOS, and Slackware. Sine Nomine Associates brought OpenSolaris to System z, relying on features provided by z/VM. Emulation of those specific z/VM features for OpenSolaris is included starting with Hercules Version 3.07.
Certain unencumbered editors and utilities which can run on a mainframe without a parent operating system may be available to run on Hercules as well.
PDOS/3X0
Usage
Hercules can be used as a development environment to verify that code is portable, supports symmetric multiprocessing, and is 64-bit "clean." There is also a large community of current and former mainframe operators and programmers, as well as those with no prior experience, who use Hercules and the public domain IBM operating systems as a hobby and for learning purposes. Most of the skills acquired when exploring classic IBM mainframe operating system versions are still relevant when transitioning to licensed IBM machines running the latest versions. The open source nature of Hercules means that anyone can produce their own customized version of the emulator. For example, a group of developers independent of the Hercules project implemented a hybrid mainframe architecture which they dubbed "S/380" using modifications to both Hercules and to freely available classic versions of MVS, enhancing the operating systems with some degree of 31-bit binary compatibility with later operating system versions.
Performance
It is difficult to determine exactly how Hercules emulation performance corresponds to real mainframe hardware, but the performance characteristics are understandably quite different. This is partially due to the difficulty of comparing real mainframe hardware to other PCs and servers as well as the lack of concrete, controlled performance comparisons. Performance comparisons are likely legally impossible for licensed IBM operating systems, and those operating systems are quite different from other operating systems, such as Linux. Hercules expresses its processing performance in MIPS. Due to the age of the earlier System/360 and System/370 hardware, it is a relatively safe assumption that Hercules will outperform them when running on moderately powerful hardware, despite the considerable overhead of emulating a computer architecture in software. However, newer, partially or fully configured System z machines outperform Hercules by a wide margin. A relatively fast dual processor X86 machine running Hercules is capable of sustaining about 50 to 60 MIPS for code that utilizes both processors in a realistic environment, with sustained rates rising to a reported 300 MIPS on leading-edge PC-class systems. Hercules can produce peaks of over 1200 MIPS when running in a tight loop, such as in a synthetic instruction benchmark or with other small, compute-intensive programs. Tom Lehmann, co-founder of TurboHercules, wrote: Hercules generally outperforms IBM's PC based mainframes from the mid-1990s, which have an advertised peak performance of around 29 MIPS. Compared to the more powerful but still entry-level IBM Multiprise 2000 and 3000 mainframes, Hercules on typical x86 hardware would be considered a mid-range server in performance terms. For every mainframe after the 9672 Generation 1, Hercules would generally be the lowest end system. For comparison, current high-end IBM zEnterprise 196 systems can deliver over 52,000 MIPS per machine, and they have considerable I/O performance advantages. With the same number of emulated Sys Z processors, z/PDT is about 3 times faster than Hercules. Note that there are other non-functional system attributes beyond performance which are typically relevant to mainframe operators.
TurboHercules
In 2009, Roger Bowler founded TurboHercules SAS, based in France, to commercialize the Hercules technology. In July 2009, TurboHercules SAS asked IBM to license z/OS to its customers for use on systems sold by TurboHercules. IBM declined the company's request. In March 2010, TurboHercules SAS filed a complaint with European Commission regulators, alleging that IBM infringed EU antitrust rules through its alleged tying of mainframe hardware to its mainframe operating system, and the EC opened a preliminary investigation. In November 2010, TurboHercules announced that it had received an investment from Microsoft Corporation. In September 2011, EC regulators closed their investigation without action.