Hercules (emulator)

From Wikipedia, the free encyclopedia
  (Redirected from Hercules emulator)
Jump to: navigation, search
Hercules
Hercules-logo.gif
Original author(s) Roger Bowler
Developer(s) Jay Maynard
Initial release 1999 (1999)
Stable release 3.07 / March 10, 2010; 23 months ago (2010-03-10)
Development status Active
Written in C
Operating system Cross-platform
Type Emulator
License Q Public License
Website www.hercules-390.org

Hercules is a computer emulator which allows software designed for IBM mainframe computers (System/370, System/390, and zSeries/System z) and for plug-compatible mainframes (such as Amdahl machines) to run on other types of computer hardware: notably on low-cost personal computers. Although there are other mainframe emulators which perform a similar function, Hercules is significant in that it enables private individuals to run mainframe computer software on their own personal computers. Hercules runs under multiple operating systems including Linux, Windows, FreeBSD, Solaris and Mac OS X and is released under the open source software license QPL.[1] It is analogous to Bochs and QEMU in that it emulates CPU instructions and peripheral devices only; the operating system has to be supplied by the user. Hercules was notably the first mainframe emulator to incorporate 64-bit z/Architecture support, beating out commercial offerings.

Roger Bowler, a mainframe systems programmer, started development of the Hercules emulator in 1999. Jay Maynard currently maintains and hosts the project.

Contents

[edit] Design

The emulator is written almost entirely in C. Machine specific assembly code, which other emulators use, was ruled out due to its lack of portability even though it could significantly improve performance. There are two exceptions: hardware assists are used to provide inter-processor consistency when emulating multiple CPUs on SMP host systems; and assembler assists are used to convert between little-endian and big-endian data on platforms where the operating system provides them, or if the host processor is a member of the x86 or x86-64 families.

[edit] Operating systems status

Hercules is technically compatible with all IBM proprietary mainframe operating systems; even older versions which no longer run on newer mainframes. However, many mainframe operating systems require vendor licenses to run legally. Older IBM operating systems including OS/360, DOS/360, DOS/VS, MVS, VM/370, and TSS/370 are either public domain or "copyrighted software provided without charge."[2] 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. IBM's Coupling Facility control code, which enables Parallel Sysplex, is also licensed, as is UTS.

MUSIC/SP may be available for education or demonstration purposes upon request to its copyright holder, McGill University. Some MUSIC/SP features, notably networking, require z/VM. However, a complete demonstration version of MUSIC/SP, packaged with the Sim390 mainframe emulator, is available.

There is no legal restriction that prevents running the open source operating systems Linux on System z and OpenSolaris for System z on the Hercules emulator. They run well on Hercules, and many Linux on System z developers do their work using Hercules. Several Linux distributions include ports for ESA/390 and some also include a separate z/Architecture port. Linux distributions with mainframe ports include SUSE Linux Enterprise Server, Red Hat Enterprise Linux, Debian GNU/Linux, CentOS, and Slackware. OpenSolaris has been ported to System z, with a heavy reliance on features provided by z/VM. (Emulation of those specific z/VM features for OpenSolaris is included starting in 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.

Hercules can be used as a development environment to verify that code is portable, supports symmetric multiprocessing (SMP) 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.

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 have implemented a hybrid mainframe architecture which they call "S/380" [3] using modifications of both Hercules and freely available versions of MVS enhancing the latter with some degree of 31 bit addressing mode binary compatibility to current versions of z/OS.

[edit] Performance

It is difficult to determine exactly how Hercules emulation speeds correspond to real mainframe hardware. This is partially due to the difficulty of comparing real mainframe hardware to other PCs and servers as well as the lack of a concrete performance measurement. 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. Newer System z systems still outperform Hercules: A relatively fast dual processor machine is capable of sustaining about 50 to 60 MIPS under Hercules for code that utilizes both processors in a realistic environment, with sustained rates rising to a reported 300 MIPS on current (early 2009) leading-edge PC-class systems. It can have peaks of over 1200 MIPS when running in a tight loop (such as in a synthetic instruction benchmark or other small compute intensive codes).

Tom Lehmann, cofounder of TurboHercules writes in the comments:

... we can run a reasonably sized load (800MIPS with our standard package). If the machine in question is larger than that, we can scale to 1600MIPS with our quad Nehalem based package and we have been promised an 8 way Nehalem EX based machine early next year that should take us to the 3200MIPS mark. Anything bigger than that is replicated by a collection of systems.[4]

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 undersized Multiprise 2000 and 3000 mainframes, Hercules would be considered a mid-range server. For every mainframe after the 9672 Generation 1, Hercules would generally be the lowest end system. Current high end System z10 systems are capable of performance up to around 28,000 MIPS (for aggregate performance of many CPUs in a fully configured 64-CPU multiprocessor server), so Hercules is outperformed by almost one order of magnitude. However, Hercules on a PC costs several orders of magnitude less[citation needed] than those high end System z systems.

[edit] TurboHercules

Roger Bowler founded TurboHercules SAS in 2009 to commercialize the Hercules technology. A July 2009 request by TurboHercules SAS asking that IBM customers be allowed to license z/OS for use on Hercules was refused by IBM.[5] In March 2010, TurboHercules SAS filed a complaint with European Commission regulators, alleging that IBM infringes EU antitrust rules by its alleged tying of mainframe hardware to its mainframe operating system.[6] In November 2010, TurboHercules announced that it had received an investment from Microsoft Corporation.[7]. In Sept 2011, EC regulators withdrew the complaint.[8].

[edit] References

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages