Linux on the IBM ESA/390 Mainframe Architecture
Linux on the mainframe? 65535 attached devices, and all of them busy?
Why would anyone do such a thing?
Its a crazy world, but in fact, Linux/390 makes more sense than
most people realize. This page attempts to capture some of the
status of this rapidly evolving port.
Overview
There are in fact two ports of Linux to the S/390 Mainframes.
One, the Bigfoot (i370) port
was started first, but is currently stagnant for essentially political,
social, and market reasons. The other,
Linux for S/390, is the subject of active development and advancement,
with a number of large pilot deployments and a very active mailing list.
A tad of history is covered below.
If you want to hack on the i370 port anyway, follow this link
for status and a quick-start guide.
The biggest reason why you may want to work on the i370 port is
because almost no one else is working on it, and you will have quite
the run of the technology. You will learn more than hacking an existing
port.
IBM Linux/390
The IBM Linux/390 port is the biggest
thing to happen in the mainframe world in many years, with explosive
interest and standing-room-only presentations.
There are many different web pages that are devoted to the topic in one
way or another, providing introductory material, pre-compiled binaries,
mailing-list archives, links to press releases, etc.
Below are some of these.
- Linux for S/390,
an IBM sponsored site at Marist College, provides precompiled
kernel and disk images, installation instructions, and
a QuickStart guide. A good place to got when you are ready to
install.
- Once you've booted and are up & running, the
Millenux Linux S/390 site
hosts the
Think Blue Linux
distribution of nearly five hundred pre-compiled RPM's
for Linux/390. This is currently the defacto Linux
distribution for the S/390.
- The
IBM Linux for S/390 is the original location at which IBM
made its patches the the kernel and compilers available. This
page is well linked to other IBM sites with background material
about VM, OS/390, Linux, and the relationship between all of these.
- Adam Thornton's Linux/390
at Princeton University site hosts a miscellany of materials.
This includes Neale Fergusen's
Linux/390 -
Notes and Observations, a technical review of the kernel
internals
(
mirror).
Also, it provides a copy of the power-point slides for the
Linux/390 presentation at Usenix in Malmo, Sweden (Feb 2000),
miscellaneous patches, and
instructions for setting up the Hercules S/390 emulator.
See also
Peter Shulte-Stracke's
Vintage, a set of scripts that provide a way of running the
IBM-supplied s390 kernel on older (pre-G2) machines.
- The
VM/ESAŽ and Linux[tm] Resources
page provides some
good reasons why running Linux on VM is a very,
very good idea. The
VM/ESA Operating System
page is the starting point for VM product info at IBM.
VM implements the concept of a 'virtual machine', a very powerful
and under-appreciated idea for
solving some fundamental operating system design problems.
A good overview of what VM is and what it does and why it does it can be
found in the paper
A Strategic Point Of
View For VM.
See also the Marist
Linux on VM FAQ.
- Market data about customers and the applications they want on
Linux/390 can be found at the Millenux
Poll of the
Week site.
- Join the mailing list: send mail to listserv@vm.marist.edu
saying subscribe linux-390 Your Name to join the mailing
list. Or browse the
mailing list archives.
- Want to see what a Linux on a mainframe looks like?
Here are some
photos of one of the
smaller models.
- Emulation
Madness shows OS/360 MFT running on the Hercules System/370 emulator
on Linux/390 running as a guest machine in VM/ESA.
Press Releases
Press releases, reports, news stories, discussions.
- An Introduction
to Linux is written from the perspective of an S/390 expert and will
help get S/390 folks up to speed.
- Jack Woehr's article for Dr. Dobb's Journal,
Linux/390 in the Spotlight at SHARE 94, not only provides
coverage of some SHARE events, but records a particularly good
panel session discussion among some of the leading participants.
It also provides very good links to additional introductory
material, answering questions such as
What is S/390? and
What is VM?.
- The Linux for Big Iron
provides a good index for Linux/390 press releases, and in
particular, for most of the IBM-authored 'official' press releases.
- Report:
S/390: The Linux Dream Machine, Scott Courtney's report on installing
and running Linux of the S/390.
- Press Release:
IBM taps Linux for Mainframes provides some insight and coverage.
- Press Release:
IBM pins hardware plans on Linux is nice because it mentions my name
within paragraphs of the word 'strategy' and 'Irving Wladawsky-Berger',
and I'm vain enough to enjoy this association.
-
Linux on Big Iron has some nice quotes from some of the early
adopters and deployers of Linux/390.
-
IBM Unveils Way to Make Mainframes Act Like Hundreds of Smaller Servers
is a press release that positions Linux/VM as a threat to Sun.
- ROAM, Running Linux On A Mainframe,
discusses some of the marketing and positioning issues.
- The debate on
Slashdot about the significance of this. See also a story on
Linux Today.
- Hangover
Fair
Documentation
Some hard-core technical documentation of S/390 internals.
Miscellany
- THE, a
gpl'ed editor with many of the features of XEDIT and KEDIT.
- An old proposal for Linux
on VM
- Another collector's item is the original Marist
Linux/VM Page.
- Linux to Mainframe Interoperability Tools
GNU and Other Tools for VM, MVS, and/or Open Edition S/390
- IBM
360 shows scanned copies of ads from 1964 for a revolutionary
new idea in computing: the general-purpose computer.
- VM Open Edition
Ported Packages includes a number of GNU tools, Apache, Samba, etc.
- Hercules
an quasi-open-source 390 emulator that runs on a PC.
(quasi-open-source, because you can get the source code, but the license
is otherwise very restrictive, prohibits redistribution, making patching
impossible. The problem is being worked.)
- Mortice Kern Systems
- David Pitts has been
maintaining an HLASM-compatible version of gcc for the
MVS/Open Edition/C Environment. Among other things, it has
ASCII-EBCDIC fixes to allow it to build & run on MVS.
This, as well as pre-built binaries are available at
David Pitts'
GCC/EGCS Compiler Page.
Note: Most, if not all, of David's patches have now
been included in either the mainstream gcc distribution, or
are in the i370 patch to egcs-1.1.2.
The i370 back end includes a number of bug fixes not available
in earlier versions of this compiler. Its the right place to
start if you want an MVS-compatible version of the gcc compiler.
Notes:
- There may be bugs with the 64-bit integer math and/or the produced
code may be very inefficient.
- There may be bugs with the floating-point math.
- Assemblers. There are two GNU assemblers that understand the
the 360/370/390 instruction set. These are the 's390' and the 'i370'
assembler front-ends in the gnu 'binutils' package.
Neither are HLASM-compatible, although the i370 assembler is closer
to HLASM, primarily because it supports literal pools, and uses
an HLASM-like syntax for instruction operands. To get a full HLASM
compatible assembler, two tasks need to be undertaken:
(1) add support for more HLASM-style syntax into the front end, and
(2) create an XSD/ESD object format back-end.
An alternative might be to write an ELF loader for MVS or VM.
The source code for the i370 assembler can be
downloaded here.
It is part of the standard gnu distribution.
- A number of well known & popular FSF/GNU/Open Source utilities
(including Apache, Samba and Perl) for OS/390 are available from
the IBM
Redbook SG245944 FTP site.
See also the
overview and the package
abstracts.
History
The original i370 project
was started in August 1998 by Linas Vepstas,
at the instigation of Daniel ("LPAR") Lepore.
It sounded like fun. Dan provided
the cheer-leading, and helped debug early versions. Later, Neale
Ferguson, Peter Schulte-Stracke, and Rob van der Heij joined in to
provide code and shoot bugs. Rick Troth helped with boot-loader issues.
The result of this effort was a compiler, an assembler, a port of glibc,
and a kernel that would usually boot but was missing important features,
such as disk drivers and network drivers, never mind a variety of
infrastructure.
The s390 project was also started in 1998, but followed a very different
path. It was begun as a skunk-works project at the IBM Böblingen
development center. It was developed in secret for over a year, with
little interaction or communication with the outside world. The
reason for this secrecy is unclear, although the best explanation
seems to be that the developers were unaware of the normal open-source
development process. It is said that they feared (political) reprisals
from other parts of IBM; since the mainframe business is a lucrative
business for IBM, it is beset by turf battles, intrigue and maneuvering,
and closed-door deals. This fear is not unfounded: certain individuals
within IBM tried to get some of the i370 developers, ahem, fired.
Others worked hard to undermine the credibility of the i370 project
with carefully placed non-disclosure agreements and leaked secrets.
Its not about being fair, its about making money.
Whatever the case may be, the s390 team chose not
to work with the i370 team, and instead developed similar but incompatible
tool chain (compiler, assembler, C Library) and kernel port.
This project
was announced publicly, and the source code released, shortly before
Christmas 1999.
Despite its unusual entrance into the public eye, it has caught the
imagination of all, and is currently the focus of all development and
deployment efforts. The reasons for this are obvious: Its supported
by a staff of paid employees (vs. i370's unpaid volunteers), and the
employees work for IBM, which is, after all, the mainframe company.
They call the shots. I only regret that work couldn't have proceeded in
a more cooperative and inclusive fashion.
Postscript
A big THANK YOU goes out to Melinda Varian of Princeton
University for providing access to the Princeton IBM/370 mainframes to
do this work!
Last updated April 2000 by Linas Vepstas
(linas@linas.org)
Copyright (c) 1998,1999,2000 Linas Vepstas.
All trademarks on this page are property of their respective owners.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included at the URL
http://www.linas.org/fdl.html,
the web page titled
"GNU Free Documentation License".
Go Back to Enterprise Linux(TM) Page
Go Back to Linas' Home Page