Linux can run on the mainframe because the mainframe is a general-purpose machine architected to support many programming models. Linux, in turn, is designed to be architecture-neutral except for a very thin architecture-dependent layer. Thus, the implementation of Linux on the mainframe came down to recompiling it for the mainframe architecture, and reimplementing Linux's architecture layer.
3.1.1 The mainframe is independent of the operating system
The IBM mainframe architecture was designed without a specific operating system in mind. This is still true today. IBM's zSeries architects do not simply enrich the platform with new operating system features or new hardware functions; they primarily have the evolution of the platform in mind. Currently, the operating systems available for the zSeries mainframe are: z/OS, VSE/ESA, z/VM, TPF and, most recently, Linux.
3.1.2 Linux is independent of the hardware architecture
Linux grew to become a more architecture-independent operating system. Since the first port from Intel to the Alpha architecture in 1995, one design principle has been to clearly distinguish between architecture-dependent and architecture-independent code in the Linux kernel. The same holds for the GNU essential packages (like the C compiler and runtime library) which supported a variety of architectures even before Linux was released in 1991.
3.1.3 Fitting Linux into the mainframe portfolio
The Linux and Open Source development approach was taken for the port of Linux to the mainframe. But from the beginning, it was clear that production work had to run on Linux on the mainframe and that Linux had to run side by side with traditional mainframe operating systems in the data center. In this setting, qualities such as reliability, availability, serviceability, scalability, manageability, and security were important and had to be considered for Linux on the mainframe.
The unique hardware platform values of the mainframe are used by Linux. Fast time-to-market is also a factor when Linux is chosen in favor of a z/OS solution. Often a solution embraces both Linux and a traditional operating system, such as z/OS or VSE/ESA, in an integrated environment (that is, on the same machine). For example, since VSE/ESA does not provide a Java environment, Linux can host the Java components in an integrated VSE/ESA and Linux solution.