|1.01||What is Hercules?|
|1.02||So what exactly does that mean?|
|1.03||Is it functional enough to run production work?|
|1.04||What are the licensing restrictions for Hercules?|
|2.01||Can it run z/OS, z/VM, z/VSE?|
|2.02||What operating systems can I run legally?|
|2.03||What other programs will run under Hercules?|
|2.04||Where can I obtain OS/360 ?|
|2.05||Where can I obtain MVS ?|
|2.06||Where can I obtain VM/370 ?|
|2.07||Where can I obtain DOS/VS ?|
|2.08||Where can I obtain Linux/390 ?|
|2.09||Where can I find documentation?|
|3.01||What PC hardware do I need to run Hercules?|
|3.02||What sort of MIPS rate can I expect?|
|3.03||What PC software do I need to run Hercules?|
|3.04||What software do I need to build Hercules on Linux and Unix?|
|3.05||What software do I need to build Hercules on Windows?|
|3.06||Can Hercules be ported to run on other platforms?|
|4.01||How can I create a virtual DASD volume?|
|4.02||Can I read a tape which was created on a mainframe?|
|4.03||Can I attach a PC tape drive to Hercules?|
|4.04||Can I process mainframe tapes with Hercules?|
|4.05||Can I create Assembler programs without a mainframe?|
|5.01||What architectural features are implemented?|
|6.01||Who are the Herculeans?|
|7.01||Where can I obtain technical support?|
Hercules is a software implementation of the System/370, ESA/390 and z/Architecture mainframe architectures. Hercules runs under Windows and Linux, as well as under various other Unix or Unix-like systems on Intel Pentium and other hardware platforms including Alpha, Sparc, and Mac.
It means that your PC can execute programs designed to run on an IBM mainframe.
Hercules executes S/370, ESA/390, and z/Architecture instructions and channel programs. It emulates mainframe I/O devices by using PC devices. For example, 3390 DASD devices are emulated by large files on your hard disk, and local 3270 screens are emulated by tn3270 sessions.
Hercules implements only the raw S/370, ESA/390, and z/Architecture instruction set; it does not provide any operating system facilities. This means that you need to provide an operating system or standalone program which Hercules can load from an emulated disk or tape device. You will have to write the operating system or standalone program yourself, unless you can manage to obtain a license from IBM to run one of their operating systems on your PC, or use IBM programs and operating systems which are effectively in the public domain.
Hercules has never claimed to be a production-capable system. It was always meant to be a system programmer's toy. Having said that, it's now become good enough to run a wide range of software without problems, and there are reports that it has been used to run production work in some parts of the world.
Hercules is a copyright work which has been made generally available, subject to the terms of the Q Public License. In essence this allows free use and distribution of the program for personal and commercial use. You may not distribute modified copies of the program, but you may distribute your own patches along with the program, provided that you also grant the maintainer permission to include those patches in future versions of the program. You may not copy any portion of the source code for use in any other program.
Yes. Hercules is a software implementation of z/Architecture, and so it is capable of running z/OS, z/VM, and z/VSE. Hercules also implements ESA/390 (including SIE) and so it can run OS/390, VM/ESA, and VSE/ESA, as well as older versions of these operating systems such as MVS/ESA, MVS/XA, MVS/SP, MVS/SE, VM/SP, VSE/SP, and DOS/VSE.
But (and this is a big but), these operating systems are all IBM Licensed Program Products, whose conditions of use generally restrict their usage to specific IBM machine serial numbers. So you cannot just copy these systems from work and run them on your PC, as this would almost certainly be a violation of your company's licensing agreement with IBM.
Operating systems which may legally be run on Hercules include:
Any program which uses the S/370, ESA/390, or z/Architecture instruction set, as implemented in Hercules. Some special utilities in the form of standalone programs are known to run well. A good example is Jan Jaeger's excellent standalone editor (ZZSA) which is included in the Hercules distribution, or it can be downloaded from http://www.cbttape.org/~jjaeger; ZZSA allows you to examine and edit MVS datasets without the need to load an operating system. Note: ZZSA runs in ESA/390 mode. See Jan Jaeger's website for more information and special logon procedures.
Jay Maynard's "IBM Public Domain Software Collection" at http://www.ibiblio.org/jmaynard/ contains copies of the OS/360 Release 21.8 distribution tapes.
The MVS 3.8J Turnkey System built by Volker Bandke can be obtained from http://www.bsp-gmbh.com/
For news about updates to the MVS 3.8J Turnkey System, subscribe to the H390-MVS forum at http://tech.groups.yahoo.com/group/H390-MVS/
Juergen Winkelmann has made available an updated MVS Turnkey System which can be downloaded from http://wotho.ethz.ch/tk4-/
Paul Edwards created a distribution consisting of a modified version of Hercules together with operating system modifications which allow applications to break the 24-bit addressing barrier inherent in S/370. The distribution is called MVS/380 and it can be downloaded from http://mvs380.sourceforge.net/
The VM/370 page at http://www.cbttape.org/vm6.htm contains download links for the Andy Norrie VM 4-pack system and the Bob Abeles VM/370 R6 distribution.
Dave Wade's VM/370 Downloads page at http://www.smrcc.org.uk/members/g4ugm/VM370.htm contains links to the most recent VM/370 distributions.
You may also wish to subscribe to the H390-VM forum at http://tech.groups.yahoo.com/group/H390-VM/
George Shedlock's DOS/VS 5-pack system can be obtained from https://docs.google.com/open?id=0B7scZ2voEa--Zm50U09xYy15ejg
Other useful files may be downloaded from the H390-DOSVS forum at http://tech.groups.yahoo.com/group/H390-DOSVS/files/
The best starting point for information about Linux for S/390 and Linux for zSeries is http://www.linuxvm.org/
There are several sites containing introductory documentation for MVS 3.8 with Hercules, including:
Much of the original IBM documentation for the 360 and 370 series is preserved at the bitsavers.org website. A good starting point is:
Jay Maynard produced a document describing how to build an OS/360 system on Hercules, called "OS/360 on Hercules". It can be found at
This will build an MVT system without TCAM/TSO, but with two 3270 consoles. You will need Malcolm Beattie's "Guide to Using 3270 Consoles and Terminals for Hercules" with this MVT version.
Classic IBM operating systems (OS/360, MVS 3.8, VM/370) are very light by today's standards and will run satisfactorily on a 300Mhz Pentium with as little as 32MB RAM.
Anything more up-to-date, such as Linux/390 or OS/390, requires much more processing power. Hercules is CPU intensive, so you will want to use the fastest processor you can get. A 2GHz Pentium, preferably with hyperthreading, will probably provide acceptable performance for a light workload. Recent 64-bit multiprocessor systems will provide better performance. Hercules makes extensive use of multi-threading to overlap I/O with CPU activity, and to dispatch multiple emulated CPU's in parallel.
For the latest 64-bit operating systems such as zLinux and z/OS, be aware that there is a performance penalty when Hercules emulates z/Architecture on a 32-bit processor such as the Pentium. If you are serious about running 64-bit then you will probably want to build Hercules for a 64-bit processor such as Alpha (DEC/Compaq/HP), AMD64 (AMD Opteron, Athlon-64, Turion 64), IA64 (Intel Itanium 2), together with a 64-bit version of Linux, or PPC (Power Mac G5) with OS X.
Hercules does not depend on the x86 architecture. It has been built and run successfully on 500 MHz Alpha 21164, SPARC, and S/390 Linux. One guy has even run OS/360 under Hercules under Linux/390 under Hercules under Linux/390 under VM/ESA! The prize for the world's smallest mainframe probably goes to Ivan Warren, who claims to have run VM/370 under Hercules on an iPAQ 5450 handheld PDA.
You should provide enough RAM to accommodate your S/390 real storage (main storage plus expanded storage) in addition to the normal requirements of your PC's operating system. For maximum throughput, you should set your main and expanded storage sizes high enough to eliminate S/390 paging. S/390 storage is allocated out of your PC's virtual storage.
You also need enough hard disk space to accommodate the emulated DASD. A virtual "3330 model 1" disk drive will need about 100 megabytes of space for emulation (a 3330-11 will need about 200 megabytes). A 3380 "single density" model will need about 650MB, a 3390 model 2 needs about 2GB, and a 3390 model 3 needs about 3GB. If you use the compressed CKD DASD feature, these sizes will shrink dramatically, usually to about 20 to 30 percent of the original size.
Thanks to the cumulative work of many individuals, including Valery Pogonchenko, Juergen Dobrinski, Albert Louw, Gabor Hoffer, Jan Jaeger, Paul Leisy, Clem Clarke, and Greg Smith, the performance of Hercules today is vastly better than it was 5 years ago.
Even on a Celeron 300 you should see an execution speed of 1 to 2 MIPS, which is enough to run OS/360 (MFT or MVT) or MVS 3.8 with a response time better than that of a 3033 from the 1970's. It's also fast enough to run VSE/ESA with an acceptable response time. On a more recent system with a 2GHz Pentium processor, you may see the system peak at around 30 MIPS which is enough to run Linux/390 or z/OS with a light workload.
Performance on server class machines is now fairly respectable. For example, on a dual-core Intel Xeon with hyperthreading (4 CPUs) running at 3.46GHz, you might expect to see a sustained MIPS rate of 40 to 60 MIPS. A dual-processor quad-core Mac Pro (8 cores, 3 GHz) will sustain over 150 MIPS. For anyone who is prepared to spend a considerable amount of money on their Hercules system, there are reports that a sustained 300+ MIPS has been achieved on an Intel Core i7 processor running at 3.75GHz using all four cores plus hyperthreading (8 CPUs).
Typical I/O rates of around 50 EXCP/second are reported on average hardware, with rates over 500/second achievable with hardware RAID.
The following software platforms are supported:
You will also need tn3270 client software for the virtual 3270 console. The tn3270 client can run on the same machine as Hercules, or on any Unix or Windows box with a TCP/IP connection to the Hercules machine.
The supported and recommended tn3270 clients for Hercules are:
Other tn3270 clients, such as QWS3270, IBM Personal Communications, Attachmate Extra, or Dynacomm Elite should also work in most cases, but be aware that some tn3270 clients have bugs which make them unusable as OS/360 or MVS consoles.
To build Hercules for Linux and other Unix-like environments you need to use the gcc compiler, version 3.x or above. You will also need a full set of GNU development tools, including recent versions of autoconf, automake, libiconv, make, perl, sed, and m4. Refer to the util/bldlvlck file in the Hercules distribution for details.
To build Hercules for the Windows environment you need to use the Microsoft C/C++ compiler (MSVC) version 14.x or later. The 32-bit compiler and SDK are packaged as Microsoft Visual C++ 2010 Express (Version 16.x) available for download from Microsoft.
Although no longer available for download, Microsoft Visual C++ 2005 Express (Version 14.x) or Microsoft Visual C++ 2008 Express (Version 15.x) may also be used. Alternatively, Microsoft Visual Studio 8.0, 9.0, or 10.0 may be used. For further information, see the README.WIN32 file.
To build Hercules for 64-bit Windows platforms you will need either Microsoft Visual C++ 2010 Express and the Microsoft Windows SDK 7.1, or Microsoft Visual Studio 9.0 or 10.0 Professional. For further information, see the README.WIN64 file.
With the introduction of autotools, we do make efforts to ensure Hercules builds and run on several different operating system platforms (mostly Linux, Windows, MAC, Solaris, and FreeBSD right now), but we of course simply cannot guarantee that it will run on every operating system platform out there.
The Hercules code is not intended to be specific to Intel hardware, so if you find any issues or faults related to running on other hardware (SPARC, Alpha, PPC, ...) under Linux, feel free to report it to the Hercules forum (see the Hercules Technical Support page).
The Creating Hercules DASD document describes various methods of creating and loading virtual DASD volumes.
Yes, indirectly. The mainframe tape must be converted to AWSTAPE format and then downloaded to your PC. The tapeconv.jcl file in the Hercules directory contains a sample program which you can run under OS/390 on your mainframe system. It reads a file from tape and converts it to AWSTAPE format. Download the AWSTAPE file to your PC (making sure to choose binary format for the download), and then add the downloaded filename to the Hercules configuration file as a virtual tape device. You will then be able to read the tape file from the virtual tape drive located on your PC.
Note: the "tapeconv" program will not correctly process input tapes
whose block size exceeds 32760!
One symptom of this may be the message "
ADRY011E I/O ERROR - DEVICE NOT ATTACHED.0000,NA,00...00,0000"
when attempting to restore from tape originally created using the default
DF/DSS block size. The solution is to recreate the dump tape with
Yes. Hercules can read and write tapes on SCSI drives. I have tested this with 4mm DAT, QIC-1000, and 9-track drives.
Yes. It is possible to obtain 9-track open reel drives and 3480-type cartridge drives which attach to the SCSI bus. Hercules makes these appear to the operating system as channel-attached 3420 or 3480 devices, making it possible to read and write real mainframe tapes.
Yes. If you want to write Assembler (BAL) programs to run on Hercules, but you don't have access to a mainframe, then there are two interesting products which you can run on your PC to assemble programs:
Sam Golob wrote a fascinating review of these two products in the September 1999 issue of NaSPA Technical Support magazine.
The following standard features of ESA/390 have been implemented:
The following optional features of ESA/390 have been implemented:
The following optional features of z/Architecture have been implemented:
The following optional features of z/Architecture have not yet been implemented:
The following standard feature has not yet been implemented:
The following optional features have been partially implemented:
The following features are not yet implemented, either due to lack of documentation, limited host system capability, or lack of supporting hardware:
Hercules is compliant with IBM's ALS-1, ALS-2 and ALS-3 architectural level sets to the degree necessary to run all OS/390 versions through 2.10 and known versions of z/OS in both ARCHLVL 1 and ARCHLVL 2 mode, and Linux and z/VM in both ESA/390 and z/Architecture mode.
The following people are among those who have contributed to this project, either as coders or as testers or both:
And thanks for support and encouragement from:
If anyone feels they have been unfairly omitted from either of these lists, please let the maintainer (maintainer @ hercules-390.eu) know.
Please see the Hercules Technical Support page.
Last updated $Date$ $Revision$