Hercules emulator
|
The Hercules emulator is an emulator for the IBM mainframe hardware: the System/370, System/390 and zSeries computers. It runs under Linux, Windows and Mac OS X and is released under the free software license QPL. It emulates the CPU and peripheral device hardware only; the operating system has to be supplied by the user.
The IBM public domain operating systems OS/360, DOS, DOS/VS, MVS, VM/CMS, and TSS/370 run under the emulator. Newer operating systems, such as OS/390, z/OS, VSE, VM/ESA, and z/VM will run, but cannot legally be used except in very limited circumstances for license reasons. Linux/390 runs 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, and CentOS.
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, 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 screenshot below shows Hercules' emulation of the Hardware Management Console (HMC) on an IBM S/390 mainframe. On real z-Series machines (successor to the 390 series) it is an IBM Thinkpad laptop running OS/2 and dedicated software that makes it look like an old-fashioned 9672 terminal... so we already have a few layers of virtualisation before introducing Hercules! PSW means "Program Status Word", known as "Instruction Pointer" on some other architectures. All counters are zero because the machine has not yet been told to boot. The console is alive (ie, imagine the OS/2 laptop is running its terminal software.) In Unix terminology the mainframe is talking back in single user console mode.
HerculesCaptureDEcran-HMC.gif
To the right is what you see after an OS is booted, in this case Debian GNU/Linux 390. The HMC command "IPL 0800" (Initial Program Load) was issued to boot from the device found at address 0800, approximately speaking. 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 virtualised HMC, where the rule is that any commands prefixed by a dot "." are passed through to the mainframe session and anything else is interpreted as an HMC command. An alternative is to connect via a 3270 session or a TCP/IP connection over ssh or X11/xterm just as for a real computer.
HerculesCaptureDEcran-ApresIPL.gif
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.
External links
- Hercules Emulator home page: http://www.conmicro.cx/hercules/
- Public domain OS library (MVS version 3.8, VM/CMS release 6, DOS/VS release 34, TSS/370 version 3): http://www.cbttape.org
- Public domain software archive: http://www.ibiblio.org/jmaynard
- Hercules discussion group: http://groups.yahoo.com/group/hercules-390/de:Hercules_(Emulator)