February 22, 2013

How to Run Your Own Mainframe Linux

IBM has invested boatloads of money in building enterprise and mainframe Linux product lines. Red Hat and SUSE Enterprise Linux both have mainframe editions. That's right, you can plunk down $75k for an IBM zEnterprise 114 mainframe and run Linux natively on it. That's one of the smaller, less expensive mainframes; Linux powers the big ones too if you feel like splurging.

Hercules project logoOr, you can run mainframe Linux on your Linux PC with the Hercules project.

But why would you want a mainframe in the first place? What makes them special? Three things:

  • 1. Throughput
  • 2. Five nines reliability
  • 3. Flexible resource allocation

Mainframes process vast amounts of data 24x7x365, and can run near 100 percent capacity without performance degradation because they are built with massive I/O. They have giant numbers of dedicated channels and super-fast switching for serving thousands of simultaneous transactions. A fully tricked-out zEnterprise system can execute 50 billion instructions per second (BIPS) and run 100,000 virtual machines.

Mainframe hardware is very robust, with lots of redundancy and configurability. For example, you can allocate CPUs and memory in all kinds of ways for different workloads. Mainframe operating systems, including Linux, have special hardware instructions for squeezing out every bit of performance.

Mainframes are not supercomputers. Supercomputers are about sheer raw processing power and speed. IBM's Watson is a supercomputer built on a big cluster and SUSE Linux.

So with all this Linux-y goodness on these massive machines, can we play with them? We're used to being able to freely download and play with Linux and Linux software. But it's not that easy for mainframe Linux. You can build your own Watson Jr. from commodity parts. But building your own mainframe is considerably more difficult if you can even get all the parts, and have a facility with adequate power and cooling to put it in.

Hercules Software to the Rescue

The answer, as always in Linux- and FOSS-land, is software. The Hercules mainframe emulator is a mainframe in software, and it runs all IBM mainframe operating systems, such as OS/360, OS/390, the z/OS family, and mainframe Linux. If you want to try out OS/390 or the current z/OS releases, good luck, because they have restrictive licenses that tie them to specific hardware. You might be able to get something if you are already an IBM customer or partner.

However, you can download and use older releases. The licensing on these is not always clearcut, so visit the Hercules FAQ for more information and downloads. The mainframe software world is not a continual rip-and-replace moving target like Linux, but is very stable and backwards-compatible all the way back to System 360, which came out in the early 1960s. Whatever you learn on those older systems is applicable to contemporary systems, so if you're thinking you want to be an ace mainframe programmer or system administrator, this is a great tool for practice and study. Mainframes are going to be with us for the foreseeable future, and the current generation of professionals are approaching retirement age, so career opportunities are opening up.

Mainframe Linux

Hercules studioYou can run mainframe Linuxes without fear of the license police. RHEL and SLES are battle-hardened supported commercial editions. Of course there are also free-of-cost mainframe Linuxes:

The Hercules System/370, ESA/390, and z/Architecture Emulator site has a lot of great information, including installation and configuration. But check your favorite Linux distro first, because it may already include Hercules. Debian and its descendants include it, including the herculesstudio graphical front-end. Fedora s390x is a nice bundle with a a good set of configuration files, such as an Ananconda installer configuration, a Hercules config, and boot files. I think openSUSE has the friendliest and best introduction to installing and running Hercules.

Remember your first experiences with Linux, the learning curve and how much time it took to become comfortable with it? It's the same way with mainframes-- they are significantly different from x86 servers, with a different vocabulary and different tools. But Linux on the mainframe is still Linux, so it's not starting from scratch. Have fun, and everyone with any system Z or Hercules experience, please share some of your stories in the comments.