Linux on zSeries

From Wikipedia, the free encyclopedia

Linux on zSeries (or Linux on System z9) is the preferred collective term for the Linux operating system and GNU/Linux software compiled to run on IBM mainframes, especially zSeries and System z9 servers. Other terms with the same meaning include Linux/390, Linux for zSeries, and z/Linux.

Contents

[edit] History

Linux on zSeries 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 zSeries. 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, and these mainframe versions have now been available for several years.

At the start of IBM's involvement, Linux patches for zSeries included some OCO (object code only) modules, without source code. However, currently Linux on zSeries is completely open source under the GPL. This 100% open source status is unusual among Linux distributions, many of which still contain OCO drivers from various vendors who wish to hide proprietary implementation details from the Linux community.

IBM announced in May 2006, that over 1,700 customers run Linux on their mainframes — a very large installed base.

[edit] Hardware

IBM zSeries/z9 servers can run mixed workloads, including numerous other operating systems, through the use of virtualization technology. Both hardware and software co-evolved over decades to support these workloads, and the Linux OS is no exception.

IFLs (Integrated Facility for Linux) are mainframe processors dedicated to running Linux. Microcode restricts IFLs from running "traditional" workloads, such as z/OS. z/OS software vendors do not typically charge for IFL capacity, and IFLs are less expensive than general purpose engines (CPs). Consequently businesses and governments can easily expand their mainframe Linux installations without affecting most of their software license charges. Although Linux can technically operate on both CPs and IFLs, IFLs simply cost less.

Linux on zSeries is available in both 31-bit and 64-bit versions, with the 64-bit versions rapidly gaining popularity as zSeries and System z9 mainframes become more prevalent. (The 64-bit distributions can still run 31-bit code.) The Linux 2.6.x kernel added substantial support for mainframe hardware, although several vendor distributions backported 2.6.x patches to the Linux 2.4.x kernel. For example, Linux on zSeries supports ESCON, FICON, SCSI-attached storage devices, and zSeries cryptographic accelerators.

[edit] Advantages

See Talk:Linux on zSeries for a discussion regarding this section's NPOV.

As one of the most scalable platforms for Linux computing, zSeries/z9 has several major advantages. First, companies and governments can simplify their computing infrastructure. Numerous small Linux and PC servers can be combined onto one mainframe, gaining all the benefits of centralization but still keeping a multitude of specialized servers thanks to thorough virtualization support, thereby reducing operating costs. File servers, Web servers, print servers, name/directory servers, and other "utility" servers are well-suited for simplification. Second, Linux on zSeries can take advantage of mainframe qualities of service, especially their reliability and security features, to support continuous business operations. (For example, the zSeries/z9 servers assure that machine instructions execute precisely — 2+2 always equals 4 — using redundant processor execution steps and integrity checking. This execution integrity is automatic and transparent to Linux. Many industries, including financial services, need this unique capability for their Linux applications. Also, mainframes support "hot" processor replacement. Linux and its applications continue to run, undisturbed, while adding or replacing processors, allowing business-friendly scaling according to demand.) Third, IBM's mainframe customers benefit, like other Linux users, from the vast and growing portfolio of useful software applications, including open source innovations.

z/OS still has numerous reliability and availability advantages over Linux — even the most reliable Linux, mainframe Linux — so most Linux on zSeries customers run both operating systems and will likely do so for the foreseeable future. However, the majority of new, 21st century mainframe buyers run Linux on their systems, many exclusively. (It is possible to configure any new mainframe with IFLs only.)

Linux on zSeries has unique advantages when Linux applications access mainframe-based data and applications in CICS, IBM DB2, IMS, and other mainframe subsystems. Architecturally, Linux on zSeries enjoys "proximity" to these resources. Linux on zSeries can interact with these resources running on the same physical system using HiperSockets (fast, in-memory TCP/IP connections that reduce network latency and processing overhead). In fact, mainframe customers often discover that their backend mainframe-based subsystems work less hard servicing inbound requests from Linux on zSeries applications than if those applications run "offboard" (on other systems across a physical network). Proximity can improve end-user responsiveness, especially for complex applications which are data-intensive or which require multiple network hops to fulfill application requests. Proximity can also improve security (since there's no network connection to intercept) and reliability (since there's no network connection to lose).

[edit] Pricing and Costs

A Linux-capable mainframe starts at about $100,000 (System z9 Business Class model A01, U.S. 2006 list price, excluding disk storage). Each (additional) IFL costs $95,000 (U.S. 2006 list price) — although the $95,000 is a one-time charge. (Unlike other systems, the only charge for a mainframe upgrade is a "frame charge." Once you pay for a processor you own it through any model upgrades, even though each IFL gets faster with each upgrade. On other systems you pay for processors again with each and every model upgrade.) Thus Linux on zSeries is not appropriate 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 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 zSeries can quickly become cost-advantageous when factoring in labor and software costs.

The cost equation for Linux on zSeries 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 simplification, as Linux on zSeries provides, can reward cooperation with better service and lower costs, but that's not to say that cooperation is always easily accomplished within a corporate bureaucracy. Ultimately market competition will encourage businesses to share infrastructure costs, otherwise they will not be the lowest cost producers.

Linux on zSeries also supports less expensive disk storage devices than z/OS because Linux does not require FICON or ESCON attachment.

[edit] Environment

zSeries/z9 servers are capable of multiple levels of virtualization (as the hypervisor itself can be virtualized), including LPARs (flexible partitions). Linux on zSeries can occupy whole partitions, even whole servers. However, most Linux on zSeries customers take advantage of z/VM. z/VM provides "virtual machines," with Linux running as a guest operating system under a hypervisor. z/VM dynamically manages processors, memory, and storage on behalf of Linux, carving up a large mainframe into hundreds or even thousands of concurrently operating Linux images. Some other servers support partitions and/or virtual machines, but the zSeries/z9 leads in its scope, scale, and flexibility for Linux computing.

Since the Linux kernel tends to assume that it is the sole OS running, that it "owns" the entire system, including all its memory, z/VM helps "tame" Linux. It is likely that, over time, the Linux kernel will more closely cooperate with z/VM (and vice versa), to better manage memory use in order to further increase capacity. That improvement process has already begun, and z/VM 5.2 introduced many Linux-specific optimizations.

[edit] Appropriate Workloads

zSeries/z9 server design emphasizes "balanced" performance, which is to say that the servers have tremendous input/output and memory performance relative to other servers. The zSeries/z9 architecture also emphasizes qualities of service (reliability, availability, security, integrity, etc.) Sheer number-crunching performance is only similar to other servers. However, mainframe philosophy is to keep all the processors "well fed," meaning that mainframe processors typically run at 90% or more utilization round the clock, and they gracefully handle sustained 100% utilization, simply queuing up work in priority order without degrading work in process. Cache and memory sizes (and performance) are huge, permitting rapid context switching and large, mixed workloads in a highly virtualized environment. Specialized offload processors for I/O, cryptography, and other purposes make sure that the main processors spend as little effort as possible except on core processing. Mainframes can scale up to huge numbers of processors in a single frame and beyond (in clusters) with near linear scalability. z/VM helps Linux achieve that feat, even up to the 54-way System z9 EC Model S54. These system attributes work well for typical business workloads, especially including transaction processing and large database management.

On the other hand, mainframes (and Linux on zSeries) do not perform well, at least on a cost basis, for workloads that emphasize single task computation. Examples include weather modeling, protein folding analysis, nuclear explosion simulations, digital cinematography, and structural engineering analysis. Supercomputers, including Linux-based supercomputers, excel at these workloads.

[edit] Support

Like all other versions of Linux, Linux on zSeries is governed by the GPL free software license. Complete Linux on zSeries source code is available from numerous groups on a free and equal basis, and architectural support is now 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.

Most Linux on zSeries customers, particularly those with business-critical production workloads, purchase a software support contract from commercial Linux vendors such as Novell SuSE or Red Hat. IBM Global Services also offers support contracts, including 24x7 coverage. Most standard Linux software applications are readily available for Linux on zSeries, including popular enterprise software packages such as WebSphere, DB2 and Oracle databases, SAP R/3, and IBM's Java Developer's Kit (JDK). Nearly every open source software package available for Linux generally is available for Linux on zSeries, including Apache HTTP Server, Samba software, JBoss, PostgreSQL, MySQL, PHP, Python programming language, Concurrent Versions System, GNU Compiler Collection, and Perl, among many others.

[edit] Market outlook

Linux is growing rapidly as of mid-2005, and Linux on zSeries is no exception. As businesses and governments grow their Linux-based computing infrastructures, large zSeries/z9 servers are more popular for simplification, total cost reduction, and demanding qualities of service (QoS) needs. IBM is aggressively promoting Linux on zSeries, and the company is now well-regarded within the Linux community as a defender of open source values, particularly because of its legal battles against the SCO Group. In their 2005 "hype" report, IT industry analyst firm Gartner cited Linux on zSeries as arguably the leading driver of Linux's adoption among businesses and governments. Quite simply, the expansion of Linux to the mainframe has given Linux as a whole additional market credibility.

Novell SuSE currently has the most popular Linux on zSeries distribution, although Red Hat is close behind. Debian, Gentoo, Slackware, and CentOS are other notable Linux on zSeries distributions, although IBM generally recommends Novell and Red Hat distributions. Linux on zSeries distributions start with the mainline "s390" architecture branch of the Linux kernel.

[edit] Developer resources

Linux software developers certified for zSeries can appeal to large enterprises and open up additional market opportunity for their products. There are few barriers to doing so as IBM offers a no-charge 30-day Linux on zSeries "test drive", allowing Linux developers of any size access to a live mainframe Linux guest running under z/VM for compiling and testing software. IBM also offers its "Chiphopper" program to help developers write and publish cross-platform Linux software. Siebel, for example, used the Chiphopper program to bring its Java-based CRM software to both Linux on zSeries and z/OS.

There are at least two software-based mainframe emulation packages that can execute zSeries software, including Linux on zSeries. FLEX-ES from Fundamental Software is the officially sanctioned option. The open source Hercules software is also available. While Hercules is not sanctioned for running licensed mainframe operating systems, such as z/OS, software licensing issues do not apply to running Linux on Hercules. Since Linux itself runs on multiple architectures the hardware emulators are not always necessary, thanks to cross compilers which can produce z/Architecture binaries from any Linux system. However, at some point a mainframe binary should be tested preferably on a real mainframe or at least an emulated one.

Linux on zSeries supports Unicode and ASCII just like any other Linux distribution — it is not an EBCDIC-based operating system. There is nothing inherent in z/Architecture that requires EBCDIC. z/OS, for that matter, supports Unicode, ASCII, and EBCDIC. Moving Linux applications to Linux on zSeries almost always involves just simple recompilation of the source code. The few exceptions might include source code which assumes a particular "endian" byte order or inline machine instructions for a specific processor, although these issues are not unique to Linux on zSeries, usually easily remedied, and quite rare.

Linux's design makes it relatively easy to compile applications for multiple platforms. However, the developer resources can be particularly helpful for performance tuning. Performance tuning is particularly important in mainframe environments with large numbers of users. Mainframe customers tend to expect applications which can scale to high numbers of users and transactions because that's how they use their systems every day. Sloppy programming is less tolerated, although the mainframe operating environment will keep any such programming from degrading other running applications and Linux instances. In fact, when used as a development environment, Linux on zSeries is quite useful for compressing test schedules and improving code quality rapidly.

Some Linux application programmers do not expect this exceptional focus on code quality that the mainframe culture and mainframe operating environment demand. However, most developers quickly understand and appreciate this phenomenon, and there's a great deal of professional pride among the growing community of developers with Linux on zSeries experience.

[edit] See also

[edit] External links

In other languages