Linux on IBM Z

{{Short description|Usage of Linux operating system on IBM mainframes}}

{{Multiple issues|

{{advert|date=September 2023}}

{{COI|date=October 2023}}

}}

{{History of IBM mainframe operating systems}}

Linux on IBM Z or Linux on zSystems is the collective term for the Linux operating system compiled to run on IBM mainframes, especially IBM Z / IBM zSystems and IBM LinuxONE servers. Similar terms which imply the same meaning are Linux/390, Linux/390x, etc. The three Linux distributions certified for usage on the IBM Z hardware platform are Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Ubuntu.

History

Linux on IBM Z originated as two separate efforts to port Linux to IBM's System/390 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.{{cite web|last=Vepstas|first=Linas|title=Linux on the IBM ESA/390 Mainframe Architecture|url=http://www.linas.org/linux/i370-bigfoot.html|access-date=5 June 2013}} 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 IBM Z.{{cite web|title=Linux/390 - Notes and Observations|url=http://linuxvm.org/penguinvm/notes.html|access-date=5 June 2013}} 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.{{cite web|title=Linux for S/390|url=http://linux.s390.org/|access-date=5 June 2013}} Commercial Linux distributors introduced mainframe editions very quickly after the initial kernel work.

IBM manager Karl-Heinz Strassemeyer of Böblingen in Germany was the main lead to get Linux running on S/390.{{cite web|last=Lettice|first=John|title=IBM's S/390 Linux guru on the Open Source patent question|date=19 November 2002|website=The Register|url=https://www.theregister.com/2002/11/19/ibms_s_390_linux_guru/}}

At the start of IBM's involvement, Linux patches for S/390 included some object code only (OCO) modules, without source code.{{cite web|title=Kernel 2.2 based|url=http://www.ibm.com/developerworks/linux/linux390/exp-2_2_20.html|work=developerWorks|publisher=IBM|access-date=5 June 2013|archive-url=https://web.archive.org/web/20140903053127/http://www.ibm.com/developerworks/linux/linux390/exp-2_2_20.html|archive-date=3 September 2014|url-status=dead}} Soon after, IBM replaced the OCO modules with open source modules. Linux on IBM Z is free software under the GNU General Public License.

According to IBM, {{as of|2006|5|lc=y}}, over 1,700 customers were running Linux on their mainframes; some examples are Nomura Securities, Home Depot, and the University of Pittsburgh.{{cite web|last=Milberg|first=Ken|title=The Gen Xer's Guide to the Mainframe Part III|url=http://www.ibmsystemsmag.com/mainframe/administrator/performance/The-Gen-Xer-s-Guide-to-the-Mainframe-Part-III/|work=IBM Systems Magazine|date=July 2008|access-date=5 June 2013|archive-url=https://web.archive.org/web/20151117014024/http://www.ibmsystemsmag.com/mainframe/administrator/performance/The-Gen-Xer-s-Guide-to-the-Mainframe-Part-III/|archive-date=17 November 2015|url-status=dead}}

Virtualization

Virtualization is required by default on IBM Z; there is no option to run Linux on IBM Z without some degree of virtualization. (Only the very first 64-bit mainframe models, the z900 and z800, included a non-virtualized "basic mode".) The 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 IBM Z. A hypervisor called z/VM can also be run as the second layer virtualization in LPARs. This allows an LPAR to run as many virtual machines (VMs) as can be supported by the resources assigned to the LPAR. KVM on IBM 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, which are memory-only TCP/IP connections. As compared to TCP/IP over standard network interface controllers (NICs, also known as Open System Adapters (OSAs) in mainframes), HiperSockets can improve end-user responsiveness (reduce network latency and processing overhead), security (since there is no network connection to intercept), and reliability (since there is no network connection to lose).{{cite web|title=Introduction|url=https://www.ibm.com/docs/nl/linux-on-systems?topic=findings-introduction|work=Exploiting HiperSockets in a KVM Environment Using IP Routing with Linux on Z - Results and Findings|publisher=IBM|access-date=23 July 2024}}

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.{{citation needed|date=August 2014}}

Hardware

Beginning with Linux kernel version 4.1 released in early 2015, Linux on IBM Z is only available as a 64-bit operating system compatible with z/Architecture mainframes. Previously, Linux on IBM Z was also available as a 32-bit operating system, with 31-bit addressing, compatible with older model mainframes introduced prior to 2000's z900 model. However, the newer 64-bit Linux kernel and 64-bit Linux on IBM Z distributions are still backward compatible with applications compiled for 32-bit Linux on IBM Z. Historically, the Linux kernel architecture designations were "s390" and "s390x" to distinguish between the 32-bit and 64-bit Linux on IBM Z kernels respectively, but "s390" now also refers generally to the one Linux on IBM 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 IBM Z). Microcode restricts IFLs from running "traditional" workloads, such as z/OS, but they are physically identical to other IBM Z processors. IFLs are typically less expensive to acquire from IBM than CPs.{{cite web|title=IBM Z: Linux on IBM Z - Solutions - IFL|url=http://www-03.ibm.com/systems/z/os/linux/solutions/ifl.html|archive-url=https://web.archive.org/web/20080917051719/http://www-03.ibm.com/systems/z/os/linux/solutions/ifl.html|url-status=dead|archive-date=September 17, 2008|publisher=IBM|access-date=5 June 2013}}

Linux on IBM 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{{cite web|url=https://www.ibm.com/it-infrastructure/z/capabilities/connectivity|title=IBM Z - I/O Connectivity: FICON/zHPF/CTC|date=2012-11-15|website=www.ibm.com|language=en-US|access-date=2016-06-01|archive-url=https://web.archive.org/web/20171201182203/https://www.ibm.com/it-infrastructure/z/capabilities/connectivity|archive-date=2017-12-01|url-status=dead}} and with a mean time between failure (MTBF){{cite web|url=http://www.computerworld.com/article/2560019/computer-hardware/mtbf.html|title=MTBF|last=staff|first=Computerworld|website=Computerworld|date=31 October 2005|access-date=2016-06-01}} measured in decades.{{cite web|url=http://www.fool.com/investing/general/2015/01/24/heres-why-ibm-is-still-building-mainframes.aspx|title=Here's Why IBM Is Still Building Mainframes -- The Motley Fool|last=Green|first=Timothy|website=The Motley Fool|date=24 January 2015|access-date=2016-06-01}} Using virtualization, numerous smaller servers can be combined onto one mainframe, gaining some benefits of centralization and cost reduction, while still allowing specialized servers. 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,{{cite web|url=https://www.vm.ibm.com/overview/index.html|title=IBM: About the z/VM Operating System|date=2015-01-14|website=www.vm.ibm.com|language=EN|access-date=2016-06-01}}{{failed verification|date=October 2023}} 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.{{cn|date=October 2023}}

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.{{citation needed|reason=dubious|date=June 2013}} Mainframes typically allow hot-swapping of hardware, such as processors and memory. IBM Z 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 failing a transaction.{{cite web|url=https://www.ibm.com/it-infrastructure/z/capabilities/resiliency|title=IBM Z - Business resiliency: Data Driven - Server|date=2010-10-26|website=www.ibm.com|language=en-US|access-date=2016-06-01}} 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. Many industries continue to rely on mainframes where they are considered to be the best option in terms of reliability, security, or cost.

Support

Like all other versions of Linux, Linux on IBM Z is governed by the GPL free software license. Complete Linux on IBM 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 IBM Z distribution on an IBM z System, IBM routinely tests three particular Linux on IBM Z distributions: Red Hat,{{cite web|title=Linux on IBM Z/IBM LinuxONE tested platforms|date=7 June 2024 |url=https://www.ibm.com/support/pages/node/6191619|publisher=IBM|access-date=23 July 2024}} SUSE,{{cite web|title=IBM Z: Linux on IBM Z - Resources - Tested platforms|url=https://www.ibm.com/it-infrastructure/z/os/linux-tested-platforms|publisher=IBM|access-date=5 June 2013}} and starting in 2015, Canonical's Ubuntu Linux.{{cite web|title=Linux on IBM Z tested platforms|url=https://www.ibm.com/support/pages/node/6191619|publisher=IBM|access-date=2 Nov 2021}} Other notable Linux on IBM Z distributions include Debian (upstream for Ubuntu),{{cite web|title=S/390 Port|url=http://www.debian.org/ports/s390/|publisher=Debian|access-date=5 June 2013}} Fedora (upstream for RHEL),{{cite web|title=Architectures/s390x|url=http://fedoraproject.org/wiki/Architectures/s390x|publisher=Fedora Project|access-date=5 June 2013}} Slackware,{{cite web|title=The Slack/390 Linux Project|url=http://www.slack390.org/|publisher=Slackware Inc.|access-date=25 November 2018|archive-url=https://web.archive.org/web/20190223154310/http://www.slack390.org/|archive-date=23 February 2019|url-status=dead}} CentOS Stream, Alpine Linux{{Cite web|title=downloads {{!}} Alpine Linux|url=https://alpinelinux.org/downloads/|access-date=2021-06-20|website=alpinelinux.org}} and Gentoo.{{cite web|title=Project:S390|url=https://wiki.gentoo.org/wiki/Project:S390|publisher=Gentoo|access-date=16 October 2014}}

Nearly every free or open-source software package available for Linux generally is available for Linux on IBM Z, including Apache HTTP Server, Samba, JBoss, PostgreSQL, MySQL, PHP, Python programming language, Concurrent Versions System (CVS), GNU Compiler Collection (GCC), LLVM, Perl, and Rust,{{Cite web|url=https://github.com/rust-lang/rust/pull/36369|title = Add s390x support by uweigand · Pull Request #36369 · rust-lang/Rust|website = GitHub}} among many others.{{cite web|title=Debian autobuilder status for s390, 29 April 2013|url=https://buildd.debian.org/stats/s390.txt|archive-url=https://archive.today/20130624195211/https://buildd.debian.org/stats/s390.txt|url-status=dead|archive-date=24 June 2013|publisher=Debian|access-date=5 June 2013}}

Red Hat and SUSE offer mainline support for their distributions running Linux on IBM Z.{{cite web|title=Red Hat Enterprise Linux for IBM Z|url=http://www.redhat.com/products/enterprise-linux/for-ibm-system-z/|publisher=Red Hat|access-date=5 June 2013}}{{cite web|title=SUSE Linux Enterprise Server for Z|url=https://www.suse.com/products/systemz/|publisher=SUSE|access-date=5 June 2013}} 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.{{cite web|title=IBM Services and Support for Linux|url=http://www-03.ibm.com/linux/services.html|publisher=IBM|access-date=5 June 2013|archive-url=https://web.archive.org/web/20131213233247/http://www-03.ibm.com/linux/services.html|archive-date=2013-12-13|url-status=dead}} Some standard Linux software applications are readily available pre-compiled, including popular closed-source enterprise software packages such as WebSphere,{{cite web|title=WebSphere MQ for Linux for System z |url=http://www-01.ibm.com/software/integration/wmq/linux_systemZ/ |publisher=IBM |access-date=5 June 2013 |url-status=dead |archive-url=https://web.archive.org/web/20130102035347/http://www-01.ibm.com/software/integration/wmq/linux_systemZ/ |archive-date= 2 January 2013}} IBM Db2{{cite web|title=Installation requirements for DB2 servers and IBM data server clients (Linux)|url=https://www.ibm.com/docs/en/dscp/10.1.0?topic=installation-linux|work=Installing IBM Data Server drivers and clients| date=13 March 2014 |publisher=IBM|access-date=23 July 2024}} and Oracle{{cite web|title=IBM System z: Linux on System z - Solutions - zSolution Oracle - Overview|url=https://www.ibm.com/it-infrastructure/z/os/linux|publisher=IBM|access-date=5 June 2013}} databases and applications, SAP R/3, SAP ERP,{{cite web|title=SAP Applications Empower Business|url=http://public.dhe.ibm.com/common/ssi/ecm/en/zss03019usen/ZSS03019USEN.PDF|access-date=5 June 2013}}{{dead link|date=December 2017 |bot=InternetArchiveBot |fix-attempted=yes}} and IBM's Java Developer's Kit (JDK),{{cite web|title=developerWorks : Technical Topics : Java technology : IBM Developer kits : Linux : Download information|website=IBM |url=http://www.ibm.com/developerworks/java/jdk/linux/download.html|access-date=5 June 2013|archive-url=https://web.archive.org/web/20130728144501/http://www.ibm.com/developerworks/java/jdk/linux/download.html|archive-date=28 July 2013|url-status=dead}} to name only a few.

Developer resources

IBM offers resources to developers wishing to target Linux for z:

  • The Linux Test Drive, a free program granting a single Linux on IBM Z virtual machine for 30 days.{{cite web|title=Linux Test Drive|url=http://www.ibm.com/partnerworld/wps/pub/systems/technical/hardware/linuxdrive?gcLang=en|publisher=IBM|access-date=5 June 2013}}
  • The IBM Systems Application Advantage for Linux (Chiphopper), a developer program to help developers write and publish cross-platform Linux software.{{cite web|title=IBM Systems Application Advantage for Linux (Chiphopper)|url=https://www.ibm.com/partnerworld/wps/servlet/ContentHandler/isv_com_dvm_techval_chiphopper|publisher=IBM|access-date=5 June 2013}}
  • The Community Development System for Linux on IBM Z (CDSL) program, a platform for providing open source developers a platform for porting to Linux on System z.{{cite web|title=IBM Z: Linux on IBM Z - Community Development System for Linux - Registration Form|url=https://www.ibm.com/it-infrastructure/z/os/linux-support|publisher=IBM|access-date=5 June 2013}}
  • The Linux Remote Development Program, a fee-based extended developer support program.{{cite web|title=Linux Remote Development Program|url=https://www.ibm.com/partnerworld/wps/servlet/ContentHandler/stg_com_sys_linux_rdp|publisher=IBM|access-date=5 June 2013}}

Linux on IBM Z supports Unicode and ASCII just like any other Linux distribution—it is not an EBCDIC-based operating system.{{cite web|title=Mainframe operating system: Linux for System z|url=https://www.ibm.com/docs/en/zos-basic-skills?topic=systems-mainframe-operating-system-linux-system-z|work=Mainframe concepts|publisher=IBM|access-date=23 July 2024}} 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 IBM Z is fairly straightforward. Potential issues include endianness (Linux on IBM Z is big-endian) and reliance on non-portable libraries, particularly if source code is not available.{{cite web|last=Gellerich|first=Wolfgang|title=Porting applications to Linux for Z|url=http://www.ibm.com/developerworks/library/l-systemz/|work=IBM developerWorks|publisher=IBM|access-date=23 October 2013}} Programs can be easily cross compiled to z/Architecture binaries on non-mainframe Linux systems.{{cite web|title=How to|url=http://www.ibm.com/developerworks/linux/linux390/howto.html#how_to_3|work=IBM developerWorks|access-date=23 October 2013}}

=Emulators=

There are at least three software-based IBM Z mainframe emulators.

  • FLEX-ES from Fundamental Software is a commercially offered option, limited to 31-bit addressing.{{cite web|title=System/390 on Intel-Based Servers|url=http://www.funsoft.com/executive.html|access-date=5 June 2013}}
  • The open source Hercules emulator supports Linux on IBM 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 IBM Z.{{cite web|title=IBM Z Development and Test Environment|url=https://www.ibm.com/products/z-development-test-environment|publisher=IBM|access-date=28 October 2024}}

See also

References

{{Reflist|30em}}