How to build an open source mainframe in your kitchen
Can you build a mainframe computer at home in your spare time? On your kitchen table? Using only common utensils and your bare hands? And no, I don’t mean a toy mainframe, but a real one – one that runs all of IBM’s most powerful software, including CICS, DB2, the classic MVS operating system and the newer 64 bit z/OS, and even the mainframe version of Linux (z/Linux). Well, can you?
This question may sound insane to you. But the answer to it happens to be yes, you certainly can, if you are named Roger Bowler. Bowler is a mainframe systems programmer who decided in the late 1990s that he wanted to have a “real computer” at home instead of some dinky PC. So he fired up his text editor and his C compiler and set to work. The result was the Hercules mainframe emulator, that is to say, a mainframe built entirely in software that runs on off-the-shelf Intel-based hardware, typically under Windows or Linux. Whether he actually wrote it on his kitchen table I cannot say. But I suspect this is something more than a figure of speech.
Now you may be thinking that Hercules is some forgotten piece of programmer prowess, one for the record books but of no practical significance. On the contrary, while it may not have the installed base of IBM brand hardware, Hercules is reputed to have several thousand users today. It has been continuously updated since 1999 by Bowler and a group of several dozen other active contributors, all working for free. You can find a good overview FAQ about what Hercules can and cannot do as well as a list of its contributors here. Originally designed for IBM’s then current 31-bit System/390 architecture (the 90s era descendant of the original System/360, the machine that launched enterprise computing in the modern sense), Hercules rapidly evolved to emulate the 64 bit z/Architecture first released in 2000.
But wait! As they say on late night TV, there’s more! This remarkable piece of software is completely free and open source (albeit licensed under the somewhat unusual Q Public License rather than the GPL). You can download it right now and run it. It will work like a charm.
Ah, yes, but as Robin Williams said in Aladdin, there are a few, um, provisos and quid pro quos. Because when you boot up Hercules you will encounter a slight problem. Unless you have a special dispensation from IBM, you won’t be able to run any of IBM’s most popular mainframe operating systems on it. And without an operating system, you won’t be able to load any of that golden oldie legacy middleware like CICS or DB2 that still supports a surprisingly high percentage of the world’s most important business applications.
It’s not that there is any missing secret code word or hidden technical obstacle. No, nothing like that. The flagship z/OS as well as z/VM and z/VSE will run just fine on Hercules. But even if you already own them you won’t be allowed to run them on Hercules because IBM says that this would be against the law. IBM, like any commercial closed source software vendor, is very picky about the elaborately crafted terms and conditions of its software license agreements. It pays its lawyers big money to write them, and it might just sic those lawyers on you if you don’t respect them. One of the most important stipulations of its mainframe contracts is that you can only run any IBM software you buy on a particular machine with a particular serial number. This rules out the possibility of taking your fully paid-up copy of z/OS off a mainframe you are retiring and putting it on, say, a sleek new HP or Dell quad-socket quad-core Intel machine running Hercules. (For those of you who remember the days of plug compatible mainframes from vendors like Amdahl that ran IBM licensed software, keep in mind that it’s now a different world – the PCMs have dropped out of the mainframe business, and since the introduction of the 64 bit z/Architecture machines in 2000 IBM no longer licenses its operating systems for any hardware but its own. I’m sure I’ll have more to say about this in future posts.)
I recently had the chance to chat with Roger Bowler at length about Hercules. He was kind enough to give me a call after my recent post about T3 Technologies, which sells IBM-compatible systems based on another mainframe emulator, FLEX-ES. As it happens, T3 is now in the process of filing a complaint with the European Union about IBM’s competition crushing tactics. Hercules – unlike FLEX – is not a commercial product, but Roger is for obvious reasons keenly interested in the fate of other mainframe emulators besides his own.
Mostly we talked about the technical aspects of mainframe emulation, which is ultimately just another form of that IT flavor of the decade, virtualization (and the main reason I got interested in emulation in the first place). I’ll come back to what Roger had to say about those issues in another post. But here I just want to mention one or two things he said about software rights that surprised me.
Roger is a big believer in open source, and from talking to him I got the impression that he is not really a commercial sort of guy. His day job is working at a French mainframe middleware vendor (SysperTec). He works on Hercules at night and on weekends. It is obviously a labor of love. When I asked him why he chose to make Hercules free and open source, he said he wasn’t dreaming of building the next Amdahl, but only trying to do something interesting with a technology he reveres. He realized right from the start that his emulation program would be useless without IBM operating systems, and that these would be disproportionately expensive to license. Who, he wondered, would pay $5,000 a month to license an operating system to run on a $1,000 PC? So he admitted to himself that Hercules would not be commercially viable and decided to give it away for free. But what he didn’t realize, he now ruefully admits, is that IBM wouldn’t agree to license its operating systems to run on Hercules at all, under any terms. That gradual realization came as a shock and a disappointment, and has left him if not exactly embittered then certainly bewildered.
It isn’t quite true that you can’t run any IBM operating systems on Hercules. Older versions of MVS and VM, as well as the original OS/360, are now in the public domain, and the Hercules web site tells you where to get them. And obviously you can run GPL programs like Linux, for example z/Linux or Linux/390. But you can’t run the stuff that the vast majority of mainframe shops these days are using for production applications, i.e. z/OS, z/VM, z/VSE, or even OS/390.
Roger reports that he has asked IBM more than once over the years to license these operating systems for Hercules. It’s not exactly that Big Blue has said no. Rather, they just don’t answer. In Roger’s words, they politely tell him “your enquiry has been passed to the appropriate department.” One can imagine a bunch of lawyers with maniacal grins sitting around in a skyscraper in New York somewhere cackling with glee as they read Roger’s repeated entreaties, crumple them up into balls and toss them into the trash.
Joking aside however, although Roger himself seems to harbor no particularly paranoid views of IBM, my own feeling is that Big Blue’s refusal to provide a straight answer to this simple question is entirely non-random. As the saying goes, I am not a lawyer (IANAL), but I seem to recall that in law the doctrine of estoppel holds that owners of certain legal rights (such as patents) must refrain from creating undue expectations about the licensing of those rights if they wish to enforce them. In other words, IBM doesn’t want to baldly and publicly admit that it is refusing to license its mainframe operating systems for the free and open source Hercules emulator – because that would be bad for its carefully cultivated reputation as a champion of open source, ha ha, don’t you see? But it also doesn’t want to do anything that might give the Hercules developers the faintest wisp of hope that it just might one day grant their wish, because that could be legally compromising. So IBM just says nothing. In politics this is known as stonewalling. Richard Nixon and Bill Clinton were past masters of this art.
It isn’t hard to see why IBM might be afraid of Hercules. Although there can be no doubt that Roger Bowler, Jay Maynard and the other contributors to the ingenious Hercules emulator are not conspiring to overthrow Big Blue’s multibillion dollar mainframe monopoly, the people in the corner offices at Armonk have got to be worried about what industry heavyweights like HP or Sun could do if they were allowed to marry Hercules with serious big iron of a non-IBM variety. They could do a lot of damage. So therefore Hercules must be kept on a very short leash. IBM doesn’t want to squash it outright, the way they did PSI. But they can’t afford to let it run free.
I find IBM’s treatment of tiny open source projects like Hercules to be not only shabby but downright creepy (cue the music for “The Godfather”). Like that memorable presidential candidate of yesteryear, IBM is in favor of openness except when it’s against it. I understand that this schizophrenic behavior is motivated by greed. And as a guy with a strong libertarian streak I’m OK with greed (cue Gordon Gecko theme). But I’m not so hot on hypocrisy. It’s time that IBM stopped pretending its interest in open source is anything other than self-serving. We all know that Microsoft and Oracle and yes even Red Hat are only in it for the money. You won’t catch Steve Ballmer or Larry Ellison running around spouting pieties about how good for the planet open source is. They tolerate open source when it is in their (shareholders’) interest to do so. Nothing more. IBM should admit it’s playing the same game.
Tags: Microsoft, money
Without love intelligence is dangerous; without intelligence love is not enough.
Wonderful blog! I actually love how it’s easy on my eyes as well as the facts is well written. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your rss feed which should do the trick! Have a nice day!