Hercules is a computer
emulator
In computing, an emulator is Computer hardware, hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run sof ...
allowing software written for
IBM mainframe
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM' ...
computers (
System/370
The IBM System/370 (S/370) is a range of IBM mainframe computers announced as the successors to the IBM System/360, System/360 family on June 30, 1970. The series mostly maintains backward compatibility with the S/360, allowing an easy migrati ...
,
System/390
The IBM System/390 is a discontinued mainframe product family implementing ESA/390, the fifth generation of the System/360 instruction set architecture. The first computers to use the ESA/390 were the Enterprise System/9000 (ES/9000) fa ...
, and
zSeries/System z) and for
plug compatible
Plug compatible refers to " hardware that is designed to perform exactly like another vendor's product." The term PCM was originally applied to manufacturers who made replacements for IBM peripherals. Later this term was used to refer to IBM-com ...
mainframes (such as
Amdahl machines) to run on other types of
computer hardware
Computer hardware includes the physical parts of a computer, such as the central processing unit (CPU), random-access memory (RAM), motherboard, computer data storage, graphics card, sound card, and computer case. It includes external devices ...
, notably on low-cost
personal computer
A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
s. Development started in 1999 by Roger Bowler, a mainframe systems programmer.
Hercules runs under multiple parent
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s including
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
NetBSD
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
,
Solaris
Solaris is the Latin word for sun.
It may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Sol ...
, and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and is released under the
open source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
license
QPL
The Q Public License (QPL) is a non-copyleft license, created by the company Trolltech for its free software edition of the Qt toolkit and framework. It was used until Qt 3.0, until version 4.0 was released under the Free Software Foundation's ...
. It is analogous to
Bochs
Bochs (pronounced "box") is a portable IA-32 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under the GNU Lesser General Public License. It supports emulation of the processor(s) (includ ...
and
QEMU
The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
in that it emulates
CPU
A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
instructions and select peripheral devices only. A vendor (or distributor) must still provide an operating system, and the user must install it. Hercules was the first mainframe emulator to incorporate 64-bit
z/Architecture
z/Architecture, initially and briefly called ESA Modal Extensions (ESAME), is IBM's 64-bit complex instruction set computer (CISC) instruction set architecture, implemented by its mainframe computers. IBM introduced its first z/Architecture ...
support.
Design
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
'' Jonathan_Swift.html" ;"title="Gulliver's Travels'' by Jonathan Swift">Gulliver's Travels'' by Jonathan Swift, the novel from which the term was coined
In computing, endianness is the order in which bytes within a word (data type), word of d ...
and big-endian data on platforms where the operating system provides such services and on
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
/
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
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
OS/390 is an IBM operating system for the System/390 IBM mainframe computers.
Overview
OS/390 was introduced in late 1995 in an effort to simplify the packaging and ordering for the key, entitled elements needed to complete a fully function ...
,
z/OS
z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest:
...
,
VSE/ESA,
z/VSE
VSEn (''Virtual Storage Extended'') is an operating system for IBM mainframe computers, the latest one in the DOS/360 lineage, which originated in 1965. It is less common than z/OS and is mostly used on smaller machines.
DOS/VSE was introduced i ...
,
VM/ESA,
z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. First released in October 2000, z/VM remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, particu ...
,
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 Facility
In IBM System/390 and IBM Z mainframe computers, a Coupling Facility or CF is a piece of computer hardware or virtual machine that coordinates multiple processors.
A Parallel Sysplex
relies on one or more Coupling Facilities (CFs). A coupling ...
control 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:
* Older IBM operating systems including
OS/360
OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB a ...
,
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first d ...
,
DOS/VS,
MVS
Multiple Virtual Storage, more commonly called MVS, is the most commonly used operating system on the System/370, System/390 and IBM Z IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unr ...
,
VM/370
VM (often: VM/CMS) is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.
Design
The heart of t ...
, and
TSS/370
The IBM Time Sharing System TSS/360 is a discontinued 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 customer ...
which are either
public domain
The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
or "copyrighted software provided without charge."
* The
MUSIC/SP
''MUSIC/SP (Multi-User System for Interactive Computing/System Product''; originally McGill University System for Interactive Computing) was developed at McGill University in the 1970s from an early IBM time-sharing system called RAX ( Remote A ...
operating system may be available for educational and demonstration purposes upon request to its copyright holder,
McGill University
McGill University (French: Université McGill) is an English-language public research university in Montreal, Quebec, Canada. Founded in 1821 by royal charter,Frost, Stanley Brice. ''McGill University, Vol. I. For the Advancement of Learning, ...
. Some of MUSIC/SP's features, notably networking, require z/VM (and thus an IBM license). However, a complete demonstration version of MUSIC/SP, packaged with the alternative Sim390 mainframe emulator, is available.
* The
Michigan Terminal System
The Michigan Terminal System (MTS) is one of the first time-sharing computer operating systems.. Created in 1967 at the University of Michigan for use on IBM System/360, IBM S/360-67, S/370 and compatible mainframe computers, it was developed and ...
(MTS) version 6.0A has been tailored to run under Hercules.
* There is no known legal restriction to running
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
operating systems
Linux on IBM Z
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
OpenSolaris for System z
OpenSolaris for System z is a discontinuedGavin Clarke, 29 March 2010Sun's IBM-mainframe flower wilts under Oracle's hard gaze ''The Register'' port of the OpenSolaris operating system to the IBM System z line of mainframe computers.
History
...
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
IBM Enterprise Systems Architecture is an instruction set architecture introduced by IBM as Enterprise Systems Architecture/370 (ESA/370) in 1988. It is based on the IBM System/370-XA architecture.
It extended the dual-address-space mechanis ...
-compatible versions. Mainframe Linux distributions include
SUSE Linux Enterprise Server
SUSE Linux Enterprise (SLE) is a Linux-based operating system developed by SUSE. It is available in two editions, suffixed with Server (SLES) for servers and mainframes, and Desktop (SLED) for workstations and desktop computers.
Its major ve ...
,
Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) is a commercial Linux distribution developed by Red Hat. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. Fedora Linux and ...
,
Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
,
CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a discontinued Linux distribution that provided a free and open-source community-supported computing platform, functionally compatible with its upstream (softw ...
, and
Slackware
Slackware is a Linux distribution created by Patrick Volkerding in 1993. Originally based on Softlanding Linux System (SLS), Slackware has been the basis for many other Linux distributions, most notably the first versions of SUSE Linux distr ...
. 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 (Public Domain Operating System, mainframe version)
Usage
Hercules can be used as a development environment to verify that code is portable (across Linux processor architectures, for example), supports
symmetric multiprocessing
Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
(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. 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
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 (and later VM and DOS/VS), enhancing the operating systems with some degree of 31-bit (and as of 2016, 64-bit) binary compatibility with later operating system versions (and as of 2018, 32-bit is also supported).
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 (early 2009) 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 (also from the 1990s), 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
In networking jargon, a computer, phone, or internet of things device connected to a computer network is sometimes referred to as an end system or end station, because it sits at the edge of the network. The end user directly interacts with an ...
. For comparison, 2010-era 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. These include high availability, failover, hot-plug CPU and RAM, I/O routing over I/O meshes, system migration and LPAR management. For example, the 370/390/ESA/z architectures implement I/O using four instructions: large, complex I/O operations can be set up and handed over to the peripheral for processing; the CPU has no further involvement in the I/O until the I/O device notifies that it has completed the operation. This results in mainframe systems where the vast majority of "CPU cycles" are used not in mainframe CPU itself, but the assortment of processors embedded in the I/O peripherals. The mainframe CPU then acts more as orchestra conductor, coordinating data movement, rather than "computing" per se. The simplest I/O devices can be emulated; complex systems would pose a challenge.
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
z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions.Starting with the earliest:
...
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.
[.]
See also
*
PC-based IBM-compatible mainframes – z/Architecture and today
References
External links
Hercules, Son of Z's(Review on Tech-news.com)
CBT tapehas a collection of IBM mainframe operating systems and of other software
Public domain software archive(includes Turnkey MVS CD image)
{{DEFAULTSORT:Hercules
1999 software
Linux emulation software
Free emulation software
MacOS emulation software
Windows emulation software
IBM System/360 mainframe line