Hercules emulator

Hercules emulator

The Hercules emulator is a computer program which allows software designed for IBM mainframe computers (System/370, System/390 and zSeries) to be 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 Linux, Windows, FreeBSD, Solaris and Mac OS X and is released under the open source software license QPL. It emulates the CPU and peripheral device hardware 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.

Development of the Hercules emulator was started in 1999 by Roger Bowler, a mainframe systems programmer. The project is currently maintained and hosted by Jay Maynard.

Background

The emulator is written 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 is one exception: hardware assists are used to provide inter-processor consistency when emulating multiple CPUs on SMP host systems.

The IBM public domain operating systems OS/360, DOS/360, DOS/VS, MVS, VM/370, and TSS/370 run under the emulator. Newer operating systems, such as OS/390, z/OS, VSE/ESA, z/VSE, VM/ESA, and z/VM will run, but cannot legally be used except in very limited circumstances for license reasons. Linux/390 and Linux on zSeries run well on Hercules, and much development work is done on the emulator. Several Linux distributions include ports for S/390 and some also include a separate zSeries port, the most popular being SUSE Linux Enterprise Server. Other distributions with mainframe ports include Red Hat Enterprise Linux, Debian Linux, CentOS, and Slackware.

One of the prime uses for Hercules is as a cheap way of getting multiprocessor and 64-bit environments for development purposes to verify that code is portable and works with 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, there are at least two projects [ [http://tech.groups.yahoo.com/group/hercules-os380/ Hercules-OS/380 Yahoo Group] ] [ [http://tech.groups.yahoo.com/group/hercules-380/ Hercules-380 Yahoo Group] ] underway whose aim is to produce a hybrid "System/380" which would combine the characteristics of System/370 and System/390.

Example usage

The screenshot below shows the Hercules control panel, which is roughly equivalent to the Hardware Management Console (HMC) on an IBM S/390 mainframe. PSW means "Program Status Word", which includes what is known as "Instruction Pointer" on some other architectures, along with other status information. All counters are zero because the machine has not yet been told to boot. The console is active and ready to take commands, however the actual operating system (Debian GNU/Linux 390 in this case) has not been loaded yet.

To the right is what you see after an operating system is booted, in this case Debian GNU/Linux 390. The panel command "IPL 0800" (Initial Program Load) was issued to boot from the device found at address 0800. A Linux boot sequence takes place that looks more or less as it does on Alpha, Intel or other platforms. Interaction here is still via the control panel, where the rule is that any commands prefixed by a dot "." are passed through to the mainframe operating system and anything else is interpreted as a panel command. An alternative is to connect via a 3270 session or a TCP/IP connection over ssh or X11/xterm just as for a personal computer.

The screenshot on the left is after logging in (with password in plain text due to the HMC pass-through arrangement). The user has shown that Linux/390 thinks it is running on a dual processor S/390 with a serial number of Pi.

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. It can have peaks of around 100 to 130 MIPS when running in a tight loop (such as in a synthetic instruction benchmark or other small compute intensive codes). 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 several orders of magnitude. However, Hercules on a PC costs several orders of magnitude less than those high end System z systems.

Processing power alone is only a small part of a larger picture. Mainframes are renowned for reliability, disk I/O performance, and their ability to handle many concurrent tasks, among other things. These aspects are generally lacking on most desktop or notebook PCs available to the hobbyist, though perhaps not on server-class platforms, so even though Hercules may be capable of performing more instructions per second than some mainframes, disk bottlenecks may degrade performance.

References

External links

* [http://www.hercules-390.org Hercules Emulator home page]
* [http://www.tech-news.com/another/ap200601b.html Hercules, Son of Z's] (Review on Tech-news.com)
* [http://www.cbttape.org Public domain OS library] (MVS version 3.8, VM/CMS release 6, DOS/VS release 34, TSS/370 version 3)
* [http://www.ibiblio.org/jmaynard Public domain software archive] (includes Turnkey MVS CD image)
* [http://www.debian-administration.org/articles/484 Running GNU/Linux] Debian s390 under a i386
* [http://www.bsp-gmbh.com/turnkey/ Tur(n)key 3 MVS documentation] (Hercules with MVS 3.8 ready to run)
* [http://pup-mvs.hercules-390.com.br/ Tur(n)key 4 MVS (BETA) on PUP Linux Bootable CD/USB image]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Hercules (Emulator) — Hercules Basisdaten Aktuelle Version 3.07 (10. März 2010) Betri …   Deutsch Wikipedia

  • Hercules (disambiguation) — Hercules is a mythical hero and son of the king of the Greek gods, Zeus. His legend is derived from the Greek legend of Heracles.Hercules may also refer to:Animals* Hercules (bear), the Scottish wrestling bearBiology* Hercules Beetle, a… …   Wikipedia

  • Hercules — Herkules oder Hercules bezeichnet oder ist Name von Geschichte die deutsche Schreibweise des mythischen griechischen Helden der Antike Herakles eine militärische Operation des Zweiten Weltkrieges, siehe Unternehmen Herkules Filme Es existieren… …   Deutsch Wikipedia

  • Emulator — Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes in bestimmten Teilaspekten nachbildet. Das nachgebildete System erhält die gleichen Daten, führt vergleichbare Programme aus und… …   Deutsch Wikipedia

  • Terminal-Emulator — Eine Terminalemulation ist ursprünglich das Nachbilden eines Terminals (Daten Endgerät ohne Rechner Intelligenz) mittels eines lokalen Computers (PC) und eines hierzu eingesetzten Programms, zum Zweck der Kommunikation des PCs und seines Nutzers… …   Deutsch Wikipedia

  • D64 — Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes nachahmt. Das nachbildende System erhält die gleichen Daten, führt die gleichen Programme aus und erzielt die möglichst gleichen… …   Deutsch Wikipedia

  • Emulieren — Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes nachahmt. Das nachbildende System erhält die gleichen Daten, führt die gleichen Programme aus und erzielt die möglichst gleichen… …   Deutsch Wikipedia

  • Kompatibilitätsschicht — Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes nachahmt. Das nachbildende System erhält die gleichen Daten, führt die gleichen Programme aus und erzielt die möglichst gleichen… …   Deutsch Wikipedia

  • 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… …   Wikipedia

  • IBM zSeries — System z9 Typ 2094 System z9 Typ 2094, mit geöffneten Frontüren und ausgeklappter HMC …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”