Linux on z Systems
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|History of IBM mainframe operating systems|
Linux on z Systems (or Linux on z for short, and previously Linux on System z) is the collective term for the Linux operating system compiled to run on IBM mainframes, especially IBM System z and IBM LinuxONE servers. Similar terms which imply the same meaning are Linux on zEnterprise, Linux on zSeries, Linux/390, Linux/390x, etc.. The terms zLinux or z/Linux are also sometimes used, but these terms are discouraged by IBM as they create the implication of an IBM-offered or IBM-distributed version of Linux, which is incorrect.
IBM and Canonical promote LinuxONE collaboration running Ubuntu 16.04.
Linux on z originated as two separate efforts to port Linux to IBM's largest servers. The first effort, the "Bigfoot" project, developed by Linas Vepstas in late 1998 through early 1999, was an independent distribution and has since been abandoned. IBM published a collection of patches and additions to the Linux 2.2.13 kernel on December 18, 1999, to start today's mainline Linux on z. Formal product announcements quickly followed in 2000, including the Integrated Facility for Linux (IFL) engines. Think Blue Linux was an early mainframe distribution consisting mainly of Red Hat packages added to the IBM kernel. Commercial Linux distributors introduced mainframe editions very quickly after the initial kernel work.
At the start of IBM's involvement, Linux patches for System z included some object code only (OCO) modules, without source code. Soon after IBM replaced the OCO modules with open source modules. Linux on z is free software under the GNU General Public License.
According to IBM, by May, 2006, over 1,700 customers were running Linux on their mainframes.
Virtualization is required by default on IBM z Systems; there is no option to run Linux on z without some degree of virtualization. (Only the very first 64-bit mainframe models, the z900 and z800, included a non-virtualized "basic mode.") First layer virtualization is provided by the Processor Resource and System Manager (PR/SM) to deploy one or more Logical Partitions (LPARs). Each LPAR supports a variety of operating systems including Linux on z. A hypervisor called z/VM can also be run as the second layer virtualization in LPARs to create as many virtual machines (VMs) as there are resources assigned to the LPARs to support them. KVM on z is another hypervisor option.
When Linux applications in an LPAR access data and applications in other LPARs such as CICS, IBM DB2, IMS, Linux, and other mainframe subsystems, running on the same physical mainframe, they can utilize HiperSockets – fast, memory-only TCP/IP connections. As compared to TCP/IP over standard network interface cards (NICs, also known as Open System Adapters or OSAs in mainframes), HiperSockets can improve end-user responsiveness (reduce network latency and processing overhead), security (since there's no network connection to intercept), and reliability (since there's no network connection to lose).
With the zEC12, zBC12, and later models, the HiperSocket concept is extended beyond the physical machine boundary via an RDMA over Converged Ethernet (RoCE) adapter to facilitate a secure and high speed inter-system communication. Applications in LPAR A in system A can thus use HiperSockets to communicate with applications in LPAR B in system B to ensure the security and performance attributes.
Beginning with Linux kernel version 4.1 released in early 2015, Linux on z is only available as a 64-bit operating system compatible with z/Architecture mainframes. Previously Linux on z was also available as a 31-bit operating system compatible with older model mainframes introduced prior to 2000's z900 model. However, the newer 64-bit Linux kernel and 64-bit Linux on z distributions are still backward compatible with applications compiled for 31-bit Linux on z. Historically the Linux kernel architecture designations were "s390" and "s390x" to distinguish between the 31-bit and 64-bit Linux on z kernels respectively, but "s390" now also refers generally to the one Linux on z kernel architecture.
Linux runs on standard, general purpose mainframe CPs (Central Processors) as well as IFLs (Integrated Facility for Linux). IFLs are mainframe processors dedicated to running Linux, either natively or under a hypervisor (z/VM or KVM on z). Microcode restricts IFLs from running "traditional" workloads, such as z/OS, but they are physically identical to other z System processors. IFLs are typically less expensive to acquire from IBM than CPs.
Linux on z gives the flexibility of running Linux with the advantages of fault-tolerant mainframe hardware capable of over 90,000 I/O operations per second and with a mean time between failure (MTBF) measured in decades. Using virtualization, numerous smaller servers can be combined onto one mainframe, gaining some benefits of centralization and cost reduction, while still allowing specialized servers. Instead of paravirtualization, IBM mainframes use full virtualization, which permits workload density far greater than paravirtualization does. Combining full virtualization of the hardware plus lightweight Virtual Machine containers that run Linux in isolation (somewhat similar in concept to Docker) result in a platform that supports more virtual servers than any other in a single footprint, which also can lower operating costs. Additional savings can be seen from reduced need for floor space, power, cooling, networking hardware, and the other infrastructure needed to support a data center. IBM mainframes allow transparent use of redundant processor execution steps and integrity checking, which is important for critical applications in certain industries such as banking.. Mainframes typically allow hot-swapping of hardware, such as processors and memory. z Systems provides fault tolerance for all key components, including processors, memory, I/O Interconnect, power supply, channel paths, network cards, and others. Through internal monitoring, possible problems are detected and problem components are designed to be switched over without even failing a single transaction. In the rare event of failure, firmware will automatically enable a spare component, disable the failing component, and notify IBM to dispatch a service representative. This is transparent to the operating system, allowing routine repairs to be performed without shutting down the system. Industries continue to rely on mainframes because they are genuinely the best option, in terms of reliability, security, and often cost.
Pricing and costs
Linux on z is not generally appropriate on premises for small businesses that would have fewer than about 10 distributed Linux servers, although some expensive per-processor licensed software can quickly reduce that rule of thumb. Most software vendors, including IBM, treat the highly virtualized IFLs just like non-virtualized processors on other platforms for licensing purposes. In other words, a single IFL running scores of Linux instances still typically counts as one "ordinary" CPU, at the same CPU price, for software licensing. Test, development, quality assurance, training, and redundant production server instances can all run on one IFL (or more IFLs, but only if needed for peak demand performance capacity). Thus, beyond some minimum threshold, Linux on z can quickly become cost-advantageous when factoring in labor and software costs.
The cost equation for Linux on z is not always well understood and is controversial, and many businesses and governments have difficulty measuring, much less basing decisions on, software, labor, and other costs (such as the costs of outage and security breaches). Acquisition costs are often more visible, and small, non-scalable servers are "cheap." Nonetheless, non-acquisition costs are no less real and are usually far greater than hardware acquisition prices. Also, individual users and departments within larger businesses and governments sometimes have difficulty sharing computing infrastructure (or any other resources, for that matter), citing a loss of control. Server centralization, as Linux on z provides, might reward cooperation with better service and lower costs, but that's not to say that cooperation is always easily accomplished within a corporate bureaucracy.
Linux on z also supports less expensive disk storage devices than z/OS because Linux does not require FICON or ESCON attachment, although z/OS may use disk space more efficiently, on balance, due to hardware-assisted database compression common on z/OS and the smaller number of operating system instances z/OS typically requires. There are also some operational advantages using some FICON-attached storage with Linux on z, for example support for z/VM Live Guest Relocation.
Mainframe characteristics are designed for such business workloads as transaction processing (especially in conjunction with concurrent, high volume batch processing) and large database management. Mainframe design traditionally emphasizes "balanced" performance for all computing elements including input/output, implemented via channel I/O. Mainframes offload I/O, system accounting, and other non-core computing tasks from the main CPUs as much as possible, and z/Architecture additionally offloads cryptographic calculations. For example, in a single IBM z13 machine up to 141 processor cores are available to configure as IFLs. However, every such machine also has 27 additional main cores: 2 as spares, 1 for firmware support, and the remainder running system accounting and I/O support tasks. In addition, each I/O adapter typically has two PowerPC processors, and a z13 supports hundreds of I/O adapters. There are also separate processors handling memory and cache control tasks, environmental monitoring, and internal interconnections, as examples.
Historically, mainframes in general, and Linux on z in particular, did not execute "CPU-intensive" single task computations with notably high performance compared to certain other platforms with a few notable exceptions such as cryptographic calculations. Examples included most scientific simulations, weather forecasting, and molecular modeling. Supercomputers, including Linux-based supercomputers, excel at these workloads. This bifurcation between mainframes and other platforms has significantly blurred in recent years, starting with the introduction of 2008's System z10, a machine based on quad-core 4.4 GHz processors with hardware decimal floating point. As mainframe processor technology has continued to evolve, and especially with the introduction of the IBM LinuxONE and IBM z13 models in 2015, IBM has started promoting its mainframes as ideal platforms to run real-time analytics and other computationally intensive tasks that mainframes did not historically run well. IBM sold its X86 server product line to Lenovo in 2014.
Mainframes do not provide graphics or sound adapters, and are as such ill-suited for digital media editing or computer-aided design (CAD) except perhaps in support roles (e.g. content storage, parts inventories, metadata management, security services, etc.)
Like all other versions of Linux, Linux on z is governed by the GPL free software license. Complete Linux on z source code is available from numerous parties on a free and equal basis, and architectural support is part of the main Linux kernel effort. IBM assigns several of its programmers to the community effort, but IBM is by no means the only participant.
Though there are no obstacles to running any Linux on z distribution on an IBM z System, IBM routinely tests three particular Linux on z distributions: Red Hat, SUSE, and, starting in 2015, Canonical's Ubuntu Linux. Other notable Linux on z distributions include Debian, Fedora, Slackware, CentOS, and Gentoo.
Nearly every free or open-source software package available for Linux generally is available for Linux on z, including Apache HTTP Server, Samba software, JBoss, PostgreSQL, MySQL, PHP, Python programming language, Concurrent Versions System (CVS), GNU Compiler Collection (GCC), LLVM, and Perl, among many others.
Red Hat and SUSE offer mainline support for their distributions running Linux on z. In 2015 Canonical announced plans to offer official support for its distribution starting in early 2016. IBM Global Services also offers support contracts, including 24x7 coverage. Some standard Linux software applications are readily available pre-compiled, including popular closed-source enterprise software packages such as WebSphere, DB2 and Oracle databases and applications, SAP R/3, SAP ERP, and IBM's Java Developer's Kit (JDK), to name only a few.
IBM offers resources to developers wishing to target Linux for z:
- The Linux Test Drive, a free program granting a single Linux on System z virtual machine for 30 days.
- The IBM Systems Application Advantage for Linux (Chiphopper), a developer program to help developers write and publish cross-platform Linux software.
- The Community Development System for Linux on System z (CDSL) program, a platform for providing open source developers a platform for porting to Linux on System z.
- The Linux Remote Development Program, a fee-based extended developer support program.
Linux on z supports Unicode and ASCII just like any other Linux distribution—it is not an EBCDIC-based operating system. However, for convenience Linux is able to read kernel parameters in EBCDIC. z/VM takes advantage of this capability.
Porting Linux applications to Linux on z is fairly straightforward. Potential issues include endianness (Linux on z is big-endian) and reliance on non-portable libraries particularly if source code is not available. Programs can be easily cross compiled to z/Architecture binaries on non-mainframe Linux systems.
There are at least three software-based System z mainframe emulators.
- FLEX-ES from Fundamental Software is a commercially offered option.
- The open source Hercules emulator supports Linux on System z (and can even run on Linux on System z itself).
- In 2010, IBM introduced the Rational Developer for System z Unit Test Feature (now called Rational Development and Test Environment for z, or sometimes RDTz for short) which provides a restricted use execution environment that can run on X86 hardware. IBM's license terms limit use of RDTz to certain application development tasks, not including final pre-production compiling or pre-production testing (such as stress testing). RDTz includes z/OS (with common middleware) and is also compatible with Linux on z.
- Comparison of Linux distributions
- OpenSolaris for System z
- Linux on Power
- UNIX System Services
- Vepstas, Linas. "Linux on the IBM ESA/390 Mainframe Architecture". Retrieved 5 June 2013.
- "Linux/390 - Notes and Observations". Retrieved 5 June 2013.
- "Linux for S/390". Retrieved 5 June 2013.
- "Kernel 2.2 based". developerWorks. IBM. Retrieved 5 June 2013.
- Milberg, Ken. "The Gen Xer's Guide to the Mainframe Part III". IBM Systems Magazine. Retrieved 5 June 2013.
- "HiperSockets". z/OS basic skills information center. IBM. Retrieved 5 June 2013.
- "IBM System z: Linux on System z - Solutions - IFL". IBM. Retrieved 5 June 2013.
- "IBM z Systems - I/O Connectivity: FICON/zHPF/CTC". www.ibm.com. 2012-11-15. Retrieved 2016-06-01.
- staff, Computerworld. "MTBF". Computerworld. Retrieved 2016-06-01.
- Green, Timothy. "Here's Why IBM Is Still Building Mainframes -- The Motley Fool". The Motley Fool. Retrieved 2016-06-01.
- "IBM: About the z/VM Operating System". www.vm.ibm.com. 2015-01-14. Retrieved 2016-06-01.
- "IBM z Systems - Business resiliency: Data Driven - Server". www.ibm.com. 2010-10-26. Retrieved 2016-06-01.
- "IBM System z: Linux on System z - Resources - Tested platforms". IBM. Retrieved 5 June 2013.
- "S/390 Port". Debian. Retrieved 5 June 2013.
- "Architectures/s390x". Fedora Project. Retrieved 5 June 2013.
- "AWelcome to the Slack/390 Project". Slackware Inc. Retrieved 22 April 2014.
- "Project:S390 https://wiki.gentoo.org/wiki/Project:S390". Gentoo.
- "Debian autobuilder status for s390, 29 April 2013". Debian. Retrieved 5 June 2013.
- "Red Hat Enterprise Linux for IBM System z". Red Hat. Retrieved 5 June 2013.
- "SUSE Linux Enterprise Server for System z". SUSE. Retrieved 5 June 2013.
- "IBM Services and Support for Linux". IBM. Retrieved 5 June 2013.
- "WebSphere MQ for Linux for System z". IBM. Retrieved 5 June 2013.
- "Installation requirements for DB2 servers and IBM data server clients (Linux)". IBM DB2 Version 10.1 Information Center. IBM. Retrieved 5 June 2013.
- "IBM System z: Linux on System z - Solutions - zSolution Oracle - Overview". IBM. Retrieved 5 June 2013.
- "SAP Applications Empower Business" (PDF). Retrieved 5 June 2013.
- "developerWorks : Technical Topics : Java™ technology : IBM Developer kits : Linux : Download information". Retrieved 5 June 2013.
- "Linux Test Drive". IBM. Retrieved 5 June 2013.
- "IBM Systems Application Advantage for Linux (Chiphopper)". IBM. Retrieved 5 June 2013.
- "IBM System z: Linux on System z - Community Development System for Linux - Registration Form". IBM. Retrieved 5 June 2013.
- "Linux Remote Development Program". IBM. Retrieved 5 June 2013.
- "Mainframe operating system: Linux for System z". z/OS basic skills information center. IBM. Retrieved 5 June 2013.
- Gellerich, Wolfgang. "Porting applications to Linux for System z". IBM developerWorks. IBM. Retrieved 23 October 2013.
- "How to". IBM developerWorks. Retrieved 23 October 2013.
- "System/390 on Intel-Based Servers". Retrieved 5 June 2013.
- "Rational System z Development and Testing Hub". IBM. Retrieved 5 June 2013.
- Open Mainframe Project
- Linux on z Systems
- Linux on z/VM
- Linux on z Systems developer site
- Linux for S/390 and zSeries community wiki
- Linux for S/390 and zSeries web site
- linux-390, users mailing list
- linux-s390, kernel devel mailing list
- IBM Software for Linux
- IBM Redbooks for Linux on System z technical know-how
- The Virtualization Cookbook for Linux on z Systems covering Red Hat Enterprise Linux (REL), SUSE Linux Enterprise Server (SLES), and Ubuntu Server
- Linux Technology Center at IBM
- Porting GCC to the IBM S/390 platform
- IBM IT Infrastructure web page