Hercules (emulator)

Last updated

Hercules
Original author(s) Roger Bowler
Developer(s) Jay Maynard, Jan Jaeger, David "Fish" Trout, Greg Smith, Bernard van der Helm, Ivan Warren, and others [1]
Initial release1999 (1999)
Final release
3.13 / 29 September 2017;6 years ago (29 September 2017)
Preview release
4.0.0-rc0 / December 16, 2016;7 years ago (2016-12-16)
Repository 3.xx spinhawk
4.0 hyperion
Written in C
Operating system Cross-platform
Type Emulator
License Q Public License
Website www.hercules-390.eu
SDL 4.x Hyperion
Developer(s) Jay Maynard, Jan Jaeger, David "Fish" Trout, Greg Smith, Bernard van der Helm, Ivan Warren, and others [2]
Stable release
4.6.0 / June 9, 2023;9 months ago (2023-06-09)
Repository github.com/SDL-Hercules-390/hyperion
Predecessor Hercules 4.0.0 Release Candidate 0
Website sdl-hercules-390.github.io/html/

Hercules is a computer emulator allowing software written 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. Development started in 1999 by Roger Bowler, a mainframe systems programmer.

Contents

Hercules runs under multiple parent operating systems including Linux, Microsoft Windows, FreeBSD, NetBSD, Solaris, and macOS and is released under the open source software license QPL. [3] It is analogous to Bochs and QEMU in that it emulates CPU 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 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 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[ citation needed ], and they must always be licensed from IBM. IBM's Coupling Facility 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:

Debian GNU/Linux running on Hercules Hercules IPL of IBM ESA-390 hardware emulation running Debian GNU-Linux.png
Debian GNU/Linux running on Hercules

Usage

Hercules can be used as a development environment to verify that code is portable (across Linux processor architectures, for example), 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[ citation needed ]. 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[ citation needed ].

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" [6] 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:

...We can run a reasonably sized load (800 MIPS with our standard package). If the machine in question is larger than that, we can scale to 1600 MIPS 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 3200 MIPS mark. Anything bigger than that is replicated by a collection of systems. [7]

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. 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.[ citation needed ] With the same number of emulated Sys Z processors, z/PDT is about 3 times faster than Hercules.[ citation needed ]

Note that there are other non-functional system attributes[ which? ] beyond performance[ clarification needed ] 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. [8] 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. [9] In November 2010, TurboHercules announced that it had received an investment from Microsoft Corporation. [10] In September 2011, EC regulators closed their investigation without action. [11]

See also

Related Research Articles

<span class="mw-page-title-main">IBM AIX</span> Series of Unix operating systems from IBM

AIX is a series of proprietary Unix operating systems developed and sold by IBM for several of its computer platforms.

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's line of business computers are developments of the basic design of the System/360.

<span class="mw-page-title-main">MVS</span> Operating system for IBM mainframes

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 unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.

<span class="mw-page-title-main">VSE (operating system)</span>

VSEn 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.

z/OS 64-bit operating system for IBM mainframes

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. Like OS/390, z/OS combines a number of formerly separate, related products, some of which are still optional. z/OS has the attributes of modern operating systems but also retains much of the older functionality originated in the 1960's and still in regular use—z/OS is designed for backward compatibility.

<span class="mw-page-title-main">IBM System/370</span> Family of mainframe computers 1970–1990

The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the product announcement. In September 1990, the System/370 line was replaced with the System/390.

In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, address buses, or data buses of that size. A computer that uses such a processor is a 64-bit computer.

<span class="mw-page-title-main">VM (operating system)</span> Family of IBM operating systems

VM 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.

<span class="mw-page-title-main">Amdahl Corporation</span> American mainframe computer manufacturer

Amdahl Corporation was an information technology company which specialized in IBM mainframe-compatible computer products, some of which were regarded as supercomputers competing with those from Cray Research. Founded in 1970 by Gene Amdahl, a former IBM computer engineer best known as chief architect of System/360, it has been a wholly owned subsidiary of Fujitsu since 1997. The company was located in Sunnyvale, California.

A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Unlike an emulator, the guest executes most instructions on the native hardware. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.

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-based system, the z900, in late 2000. Later z/Architecture systems include the IBM z800, z990, z890, System z9, System z10, zEnterprise 196, zEnterprise 114, zEC12, zBC12, z13, z14, z15 and z16.

IBM S/390 Multiprise was a short-lived series of small, compact, entry-level 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 electricity or floor space. However, they sacrificed performance and were not as dependable as mainframe-class hardware. These products have been popular with mainframe developers, in education and training settings, for very small companies with non-critical processing, and in certain disaster relief roles.

In computing, hardware-assisted virtualization is a platform virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors. A full virtualization is used to emulate a complete hardware environment, or virtual machine, in which an unmodified guest operating system effectively executes in complete isolation. Hardware-assisted virtualization was added to x86 processors in 2005, 2006 and 2010 (respectively).

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

<span class="mw-page-title-main">IBM System z10</span> Line of mainframe computers

IBM System z10 is a line of IBM mainframes. The z10 Enterprise Class (EC) was announced on February 26, 2008. On October 21, 2008, IBM announced the z10 Business Class (BC), a scaled-down version of the z10 EC. The System z10 represents the first model family powered by the z10 quad core processing engine. Its successors are the zEnterprise System models introduced in 2010 and 2012.

Linux on IBM Z or Linux on zSystems is the collective term for the Linux operating system compiled to run on IBM mainframes, especially IBM Z / IBM zSystems and IBM LinuxONE servers. Similar terms which imply the same meaning are Linux/390, Linux/390x, etc. The three Linux distributions certified for usage on the IBM Z hardware platform are Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Ubuntu.

In computing, a system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".

References

  1. "6.1", FAQ, EU: Hercules 390
  2. "6.1", FAQ, GitHub: SDL Hercules 390
  3. Licenses by Name (alphabetical) (list), Open Source Initiative, 16 September 2022
  4. "2.02. What operating systems can I run legally?", Frequently-Asked Questions, EU: Hercules 390 Version 3.
  5. "Michigan Terminal System Archive". Archived from the original on 11 January 2011. Retrieved 10 December 2022.
  6. "S/380 Description", MVS/380 project, Sourceforge.
  7. Hercules goes commercial! (Web log), Oracle, archived from the original on 10 October 2016
  8. Exchange of letters between TurboHercules and IBM, Turbo Hercules, archived from the original on 12 October 2011.
  9. Antitrust: Commission initiates formal investigations against IBM in two cases of suspected abuse of dominant market position, European Commission, 26 July 2010.
  10. News Release (PDF), TurboHercules, 23 November 2010, archived from the original (PDF) on 10 March 2012.
  11. Antitrust: Commission market tests IBM's commitments on mainframe maintenance and closes separate case into alleged unlawful tying, EC, 20 September 2011.