August 2019 marked the 50th birthday of Unix. Unix led to AIX and Linux, and Linux eventually led to the Rockhopper III on LinuxONE mainframes. So, I thought it might be interesting to look back at the history of Unix and what it led to.
Our story starts in 1964 at Bell Labs (owned by AT&T). Bell Labs had a project with MIT and General Electric (GE) to develop a new operating system that would allow multiple users to access a mainframe at the same time—making it very easy for people to access and use. They called it Multiplexed Information and Computing Service (Multics). MIT, who had a primitive time-sharing system called CTSS, would provide the specs, GE would provide the hardware, and GE and Bell Labs would split the programming tasks. After four years of work (and, by then, two years overdue), Bell Labs didn’t feel the project was making enough progress and they cancelled it. The programmers apparently weren’t that surprised at the cancellation. However, they were disappointed to lose access to the mainframe they had become used to playing around on.
From UNICS to Unix
They needed a new computer, and the team managed to get their hands on a DEC PDP-7 minicomputer. They developed a new operating system called the UNIplexed Information and Computing System (UNICS). This was in August 1969. It came with a hierarchical file system, the concepts of computer processes and device files, a command-line interpreter, and some small utility programs. It also had a self-hosting operating system with an assembler, editor and shell. At some stage its name started to be written as Unix.
The system became more complex as new ideas were incorporated and so a Unix Programmer’s Manual was published in late 1971. Commands were documented in the “man page” format that is still used, offering brief reference information about usage as well as bugs in the software, and listing the authors of programs so the right person could be asked any questions.
Identifying the Unix User Base
Once another department at Bell Labs bought PDP-11s and ran Unix on them rather than DEC’s own operating system, Unix was beginning to find a user base. By 1973 with Version 4, it was widely used within the laboratory and a Unix Support Group was formed. This Version 4 was rewritten in C rather than Assembler. The use of C made Unix portable to other platforms (although a small amount of machine-dependent code needed to be replaced).
1973 also saw Unix being presented to the outside world at the Symposium on Operating Systems Principles. The Labs made the software available for free—requesting only the cost of postage and media from anyone who wanted a copy. However, this wasn’t in the spirit of altruism; following a 1956 antitrust case, Bell System was forbidden from entering any business other than “common carrier communications services” and was required to license any patents it had upon request. That’s why they couldn’t sell Unix.
Unix Version 5 was licensed to educational institutions, and Version 6 was licensed to companies. By the late 1970s, it was being ported to other hardware platforms. In 1976, at Princeton, it was ported to the S/370, to run as a guest operating system under VM/370. In 1979, IBM assisted Bell Labs in doing its own Unix port to the 370 (to be used as a build host for the 5ESS phone switch’s software). In 1985 IBM offered its own Unix on the S/370 platform, IX/370.
Unix, AIX and Power Systems
AIX Version 1 was introduced in 1986 for the IBM RT PC workstation, and was based on Unix System V Releases 1 and 2. In developing AIX, IBM and Interactive Systems Corporation (whom IBM contracted) also incorporated source code from 4.2 and 4.3 BSD Unix. IBM later produced AIX Version 3 (also known as AIX/6000), based on System V Release 3, for their POWER-based RS/6000 platform. Since 1990, AIX has served as the primary operating system for the RS/6000 series (now called IBM Power Systems). AIX 7.2 was announced in October 2015 and released in December 2015. It’s only supported on systems based on POWER7 or later processors.
In 1984, AT&T got rid of Bell Labs, which was then free of the antitrust ruling and began selling Unix as a proprietary product. Users were not legally allowed to modify Unix. The GNU Project, started in 1983, set out to create a “complete Unix-compatible software system” composed entirely of free software. In 1985, Richard Stallman started the Free Software Foundation, and in 1989 wrote the GNU General Public License (GNU GPL). By the early 1990s, many of the programs required in an operating system (such as libraries, compilers, text editors, a Unix shell and a windowing system) were completed, but not low-level elements such as device drivers, daemons and the kernel.
MINIX (mini-Unix) was released in 1987 as a minimal Unix-like operating system targeted at students and others who wanted to learn the operating system principles. Although the complete source code of MINIX was freely available, the licensing terms prevented it from being free software. In 1991, Linus Torvalds began to work on his own operating system kernel, which eventually became the Linux kernel.
Development began on MINIX and applications written for MINIX were also used on Linux. Later, all Linux kernel development took place on Linux systems. GNU applications also replaced all MINIX components. Torvalds wanted to call his invention “Freax.” It later became Linux and was ported to many different platforms, including Android phones and mainframes.
In 2000, Linux received an important boost when IBM announced it would embrace Linux as strategic to its systems strategy. Linux on IBM Z can run under z/OS or on LinuxONE mainframes. The Integrated Facility for Linux (IFL) is a specialty processor for running Linux. It was announced in 2000. It makes running Linux cheaper because the code isn’t running on the main processor—which is chargeable.
Red Hat is a company that supplies Enterprise Linux, which runs on IBM Z. In July 2019, IBM bought the company. In addition, z/OS Container Extensions (zCX) provides a way to run a virtual Docker appliance as a started task on z/OS, providing another way of making all of the great features of z/OS available to Linux applications.
So, happy birthday Unix. If Multics hadn’t been cancelled by Bell Labs, then mainframe history might have been different.