Hercules emulator
Encyclopedia
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 system
s including Linux
, Windows
, FreeBSD
, Solaris and Mac OS X
and is released under the open source software license QPL. 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.
. 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.
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" 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.
Tom Lehmann, cofounder of TurboHercules writes in the comments:
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 than those high end System z systems.
for use on Hercules was refused by IBM. 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. In November 2010, TurboHercules announced that it had received an investment from Microsoft Corporation.. In Sept 2011, EC regulators withdrew the complaint..
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...
which allows software designed for IBM mainframe
IBM mainframe
IBM mainframes are large computer systems produced by IBM from 1952 to the present. During the 1960s and 1970s, the term mainframe computer was almost synonymous with IBM products due to their marketshare...
computers (System/370
System/370
The IBM System/370 was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family. The series maintained backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the...
, System/390, and zSeries/System z) and for plug-compatible mainframes (such as Amdahl
Amdahl Corporation
Amdahl Corporation is an information technology company which specializes in IBM mainframe-compatible computer products. Founded in 1970 by Dr. Gene Amdahl, a former IBM employee, it has been a wholly owned subsidiary of Fujitsu since 1997...
machines) to run on other types of computer hardware: notably on low-cost personal computers
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...
. 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 system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s including Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, Solaris and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
and is released under the open source software license QPL. It is analogous to Bochs
Bochs
Bochs is a portable x86 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under GNU Lesser General Public License...
and QEMU
QEMU
QEMU is a processor emulator that relies on dynamic binary translation to achieve a reasonable speed while being easy to port on new host CPU architectures....
in that it emulates CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
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
Z/Architecture
z/Architecture, initially and briefly called ESA Modal Extensions , refers to IBM's 64-bit computing architecture for IBM mainframe computers. IBM introduced its first z/Architecture-based system, the zSeries Model 900, in late 2000. Later z/Architecture systems include the IBM z800, z990, z890,...
support, beating out commercial offerings.
Roger Bowler, a mainframe systems programmer, started development of the Hercules emulator in 1999. Jay Maynard
Jay Maynard
Jay Maynard is a computer programmer and system administrator and the volunteer project maintainer for Hercules, an emulator of IBM mainframe hardware...
currently maintains and hosts the project.
Design
The emulator is written almost entirely in CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
. Machine specific assembly
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
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
Endianness
In computing, the term endian or endianness refers to the ordering of individually addressable sub-components within the representation of a larger data item as stored in external memory . Each sub-component in the representation has a unique degree of significance, like the place value of digits...
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
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
families.
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.- There is no legal restriction that prevents running the open sourceOpen sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
operating systems Linux on System zLinux on System zLinux on System z is the collective term for the Linux operating system compiled to run on IBM mainframes, especially System z machines. Other terms with the same meaning include Linux on zEnterprise 196, Linux on System z10, Linux on System z9, Linux on zSeries, Linux/390, zLinux, z/Linux,...
and OpenSolaris for System zOpenSolaris for System zOpenSolaris for System z is a distribution of the OpenSolaris computer operating system designed to run on the IBM System z line of mainframe computers. OpenSolaris is an open source project created by Sun Microsystems to build a developer community around Solaris technology.- History :OpenSolaris...
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/390ESA/390ESA/390 was introduced in September 1990 and is IBM's last 31-bit-address/32-bit-data mainframe computing design, copied by Amdahl, Hitachi, and Fujitsu among other competitors...
and some also include a separate z/Architecture port. Linux distributions with mainframe ports include SUSE Linux Enterprise ServerSUSE Linux Enterprise ServerSUSE Linux Enterprise Server is a Linux distribution supplied by SUSE and targeted at the business market. It is targeted for servers, mainframes, and workstations but can be installed on desktop computers for testing as well. New major versions are released at an interval of 3-4 years, while...
, Red Hat Enterprise LinuxRed Hat Enterprise LinuxRed Hat Enterprise Linux is a Linux-based operating system developed by Red Hat and targeted toward the commercial market. Red Hat Enterprise Linux is released in server versions for x86, x86-64, Itanium, PowerPC and IBM System z, and desktop versions for x86 and x86-64...
, Debian GNU/LinuxDebianDebian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
, CentOSCentOSCentOS is a free operating system based on Red Hat Enterprise Linux . It exists to provide a free enterprise class computing platform and strives to maintain 100% binary compatibility with its upstream distribution...
, and SlackwareSlackwareSlackware is a free and open source Linux-based operating system. It was one of the earliest operating systems to be built on top of the Linux kernel and is the oldest currently being maintained. Slackware was created by Patrick Volkerding of Slackware Linux, Inc. in 1993...
. OpenSolarisOpenSolarisOpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...
has been ported to System zOpenSolaris for System zOpenSolaris for System z is a distribution of the OpenSolaris computer operating system designed to run on the IBM System z line of mainframe computers. OpenSolaris is an open source project created by Sun Microsystems to build a developer community around Solaris technology.- History :OpenSolaris...
, 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.) - Older IBM operating systems including OS/360, DOS/360DOS/360Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....
, DOS/VS, MVSMVSMultiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers...
, VM/370, and TSS/370TSS/360The IBM Time Sharing System TSS/360 was an early time-sharing operating system designed exclusively for a special model of the System/360 line of mainframes, the Model 67. Made available on a trial basis to a limited set of customers in 1967, it was never officially released as a supported product...
are either public domainPublic domainWorks are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all...
or "copyrighted software provided without charge." - Newer licensed operating systems, such as OS/390OS/390OS/390 is an IBM operating system for the System/390 IBM mainframe computers.OS/390 was introduced in late 1995 in an effort, led by the late Randy Stelman, to simplify the packaging and ordering for the key, entitled elements needed to complete a fully functional MVS operating system package...
, z/OSZ/OSz/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
, VSE/ESA, z/VSE, VM/ESA, z/VMZ/VMz/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...
, TPF/ESA, and z/TPF are technically compatible but cannot legally run on the Hercules emulator except in very limited circumstances. - IBM's Coupling FacilityCoupling FacilityIn IBM mainframe computers, a Coupling Facility or CF is a piece of computer hardware which allows multiple processors to access the same data.A Parallel Sysplex relies on one or more Coupling Facilities...
control code, which enables Parallel SysplexParallel SysplexIn computing, a Parallel Sysplex is a cluster of IBM mainframes acting together as a single system image with z/OS. Used for disaster recovery, Parallel Sysplex combines data sharing and parallel computing to allow a cluster of up to 32 systems to share a workload for high performance and high...
, is also licensed, as is UTSUTS (Mainframe UNIX)UTS is an implementation of the UNIX operating system for IBM mainframe computers. Amdahl created the first versions of UTS, and released it in May 1981, with UTS Global later acquiring rights to the product.- Features :...
. - MUSIC/SPMUSIC/SPMUSIC/SP was developed at McGill University in the 1970s from an early IBM time-sharing system called RAX...
may be available for education or demonstration purposes upon request to its copyright holder, McGill UniversityMcGill UniversityMohammed Fathy is a public research university located in Montreal, Quebec, Canada. The university bears the name of James McGill, a prominent Montreal merchant from Glasgow, Scotland, whose bequest formed the beginning of the 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. - Certain unencumbered editors and utilities, which can run on a mainframe without a parent operating system, may be available to run on Hercules.
Hercules can be used as a development environment to verify that code is portable, supports symmetric multiprocessing
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
(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" 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.
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."
Hercules generally outperforms IBM's PC based mainframes
PC-based IBM-compatible mainframes
Since the rise of the personal computer in the 1980s, IBM and other vendors have created PC-based IBM-compatible mainframes which are compatible with the larger IBM mainframe computers. For a period of time PC-based mainframe-compatible systems had a lower price and did not require as much...
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 than those high end System z systems.
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/OSZ/OS
z/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
for use on Hercules was refused by IBM. In March 2010, TurboHercules SAS filed a complaint with European Commission regulators
European Union IBM competition cases
On July 26, 2010, the European Commission announced two separate antitrust investigations against International Business Machines . Both cases were related to alleged abuse of IBM's dominant position in the mainframe market...
, alleging that IBM infringes EU antitrust rules by its alleged tying of mainframe hardware to its mainframe operating system. In November 2010, TurboHercules announced that it had received an investment from Microsoft Corporation.. In Sept 2011, EC regulators withdrew the complaint..
External links
- Hercules, Son of Z's (Review on Tech-news.com)
- Public domain OS library (MVS version 3.8, VM/CMS release 6, DOS/VS release 34, TSS/370 version 3)
- Public domain software archive (includes Turnkey MVS CD image)
- Online demonstration of Hercules-MVS 3.8J, DOS/VS Rel 34, and VM/370