On May 17, 2010, IBM celebrated the 10th anniversary of Linux software and services for the IBM mainframe—a cornerstone in the company’s strategy to infuse Linux throughout its portfolio. This article sheds light on the origins of mainframe Linux and its evolution.
How Things Began
Work on the mainframe Linux project started in spring 1998. At that time, the IBM mainframe architecture was ESA/390, defined in 1990; but its successor, z/Architecture, was lurking just over the horizon. Main features of ESA/390 were data space support and serial peripheral attachment via optical fiber (Enterprise Systems Connection [ESCON]). Long before Linux, IBM released an AIX-based UNIX system on the mainframe (AIX/370 in 1990 and AIX/ESA in 1991), and later built a more integrated UNIX environment in MVS, releasing OpenEdition in 1993 (today known as UNIX System Services).
Linux started in 1991 as a student project of Linus Torvalds on an Intel-based workstation. In 1992, the Linux source code was put under the GNU General Public License (GPL), which encouraged more people to contribute their efforts. Linux kernel version 1.0 was released in 1994. Despite the challenges of porting Linux to different computer architectures, programmers all over the world started working on Linux ports. By 1998, the chasm between Linux and S/390 had narrowed to the point that Linux on S/390 seemed promising. The then-current IBM servers (9672 G5 and G6 and Multiprise 3000) offered some key features to enable Linux:
- IEEE Binary Floating Point hardware support
- Open System Adapter (OSA) Express with Queued Direct I/O (QDIO) protocol for fast LAN access
- More than twice the CPU power of the predecessor machines
- Standard virtualization using VM/ESA or Logical Partitions (LPARs).
The somewhat unusual S/390 31-bit addressing mode didn’t restrict Linux functionality or the availability of applications, and although S/390 servers were known as EBCDIC systems where Linux uses ASCII, this was also unimportant since character encoding is relevant only to software and terminals.
In 1998, a small group of programmers at the IBM Boeblingen development lab in Germany started work on a Linux S/390 port. After the failure of the AIX/ESA project, few inside IBM expected Linux to succeed on the mainframe. Boas Betzler, a young systems programmer, was more optimistic. The port was his idea, and he shepherded it from its beginnings to the first downloads. Alex Stark, manager of the group, remembers that “Linux skills in our department were limited and we used every hiring ticket to back the porting.” Today, Stark is program director for Linux on System z in the IBM System & Technology Group.
About the same time, a parallel, independent, open source project nicknamed “Bigfoot” started another port of Linux to S/390. Driven by Linas Vepstas, a Linux enthusiast from Austin, TX, Bigfoot made progress, but was abandoned after the release of IBM’s Linux on S/390 patches.
The GNU/Linux System Package
Richard Stallman initiated the GNU project in 1983. He envisioned an operating system composed entirely of free software. The GNU project focused on programming development tools, until Linux arrived in 1990 to provide the needed UNIX-like kernel. A tenet of GNU is portability across hardware platforms and Linux fit the bill nicely.
Porting the Linux kernel to a new architecture requires an ecosystem for compiling the kernel source plus debugging tools. A Linux distribution (a Linux kernel plus applications) requires even more parts (see Figure 1):