School of Computer Science
Australian Defence Force Academy
Unix as a working operating system is now well over 25 years old. So why hasn't it died out yet? The command line interface is horrible! This talk looks at some of those things that makes Unix good, and shows that nearly all of them were there in the original versions of Unix. These `vintage' versions of Unix still fascinate some people, which is why a group has been formed to try and preserve them. With luck and a working PDP-11 emulator, a demonstration of Seventh Edition Unix (17 years old) will be given.
This paper has been taken from the slides presented at the Summer Conference.
Bell Laboratories (BTL) was one of the co-developers of Multics in the late '60s but pulled out in 1969, leaving many BTL people at a loose end. Several people who were still interested in OS design `found' a PDP-7 and tinkered with ideas, many from their Multics experience. The PDP-7 was slow & painful, and the group managed to get a PDP-11/20 on the promise of building a document processing system, not an OS. roff and ed were quickly written, and the first Unix system `shipped' to Bell's Patent Department.
1st Edition Unix was written entirely in assembler, was multiuser (2 users) & multitasking, and had ar, as, cat, cp, df, du, ln, ls, mail, od, su, wc and who. By 2nd Edition there were 10 Unix installations; 3rd Edition had 16. 3rd & 4th Edition saw the system rewritten almost entirely in C and the introduction of pipes.
Doug McIlroy had been nagging Ken Thompson about implementing pipes. Finally Ken hacked the system to do it, and then hacked the user programs to use `standard input'. ``It was clear, practically minutes after the system came up with pipes working, that it was wonderful... Nobody would ever go back and give that up ...'' - Dick Haight. Pipes created the Unix `toolbox' concept.
Ken Thompson's paper about 4th Edition Unix in the July '74 CACM caused a stir around the academic world. Many institutions asked for copies of Unix. AT&T at the time could not sell software, so they licensed copies of Unix and provided no support or bug fixes. Thus Unix spread around the world and users were forced to fend for themselves. As they had the source, they fixed bugs, developed new programs and kernel modifications, and came to depend on each other for support.
Throughout the '70s, Unix predominately ran on PDP-11s, although the use of C meant that the system could be ported to other machines. User communities such as AUUG, EUUG and USENIX sprang up. BTL kept developing Unix, incorporating many changes from the users. Within AT&T, there were many `flavours' of Unix (MERT, Programmer's Work Bench), and many developments were folded back into the research versions.
The last research version before the AT&T commercial versions was 7th Edition, considered by many to be the `one true Unix'. 7th Edition was ported to the VAX (as 32V), which became the predominant Unix platform of the early- to mid-80s. AT&T were allowed to sell software in 1983, and Unix was sold as `System V' and its offspring.
By 7th Edition & 32V, most of the `great' features of Unix were in place.
Write programs that do one thing & do it well. Write programs to work together. Write programs to handle text streams.
The kernel source was compact and elegant. Full source code for the kernel and applications was available to the users, making it readable and fixable. The source code was written in a high-level language, allowing system portability.
Pipes. A small set of system calls. Multitasking, multiuser, file protections. Virtual memory in 32V. An advanced file system design.
User groups such as AUUG and USENIX. Development of the Usenet with UUCP. Free Software Foundation as a reaction to commercial Unix. The Internet through the development of BSD 4.x. This communal spirit now permeates the Linux and Free BSD user groups.
Many of the changes done to 6th & 7th Edition Unix were done by Australians, and AUUG members in particular. Several people from UNSW hacked 6th Edition to perform user accounting and resource sharing; the result was the `Australian Unix Share Accounting Method' or AUSAM.
Robert Elz at the University of Melbourne gave Unix quotas and autoconfiguration, both still in current versions of Unix. He also did a lot of work on the terminal drivers.
The University of Sydney developed the `Sydney Uni Network' software, which became the basis of the ACSnet, before the Internet arrived.
John Lions from UNSW (with help from students) created his famous `Unix Commentary' which described the 6th Edition Unix kernel line by line, and was used to teach OS concepts to students.
Some people collect old cars; some people collect antiques. The PDP Unix Preservation Society is devoted to the preservation of all information related to the versions of Unix that ran on PDPs.
The PUPS Web page has the stuff that can be obtained licence free, such as anecdotes, some documentation, images etc. A protected ftp archive has the stuff that needs a Unix license. Currently we have 5th, 6th & 7th Edition, PWB with AUSAM mods, 2.9BSD and 2.11BSD.
There is a mailing list of 20 people for those who are still using PDP Unixes, or who like to reminisce. The lastest BSD Unix for the PDP, 2.11 BSD, is still being developed by Steven Schultz, and has many of the 4.4BSD-Lite features.
The biggest problem for the group is who to ask for new licenses for 7th Edition Unix. Not AT&T, not Novell, perhaps HP and SCO? The PDP Unix Preservation Society will be more than happy to copy information on paper, mag tapes and anecdotes from you.
7th Edition ran on PDP 11/40s, 11/45s and 11/70s. A typical system might have been:
There were several languages: cc, f77, awk, sed, lex, yacc. Document processing: troff, nroff, pic, eqn, tbl. The editor was ed - no vi or emacs yet. UUCP was the only networking code; no TCP/IP.
The kernel was around 50K in size. ls was 8K. troff was 48K. The operating system was around 17,000 lines of code, including header files. It fitted into 310K of disk space.
A Quarter Century of UNIX by Peter Salus is the book to read for a historical look at Unix, its ethos and its communal spirit. Life with UNIX by Don Libes & Sandy Ressler gives a briefer look at the history and development of Unix. Old newsletters from AUUG, EUUG and Usenix are fascinating. Will AUUG ever set up some form of library/archive? `UNIX Review' had several interviews with the early Unix developers in 1985.
The manuals from the 6th & 7th Editions are succinct, with humour not found in newer Unix versions. They also have several tutorials and papers, including the 1974 CACM paper. If you can get it, John Lions Commentary on the UNIX OS is a great read. John Lions & Peter Salus are working on getting this published properly.
Many users regard an operating system's user interface as the operating system itself. This view is increasing as users become GUI-dependent. What made Unix so great was not the user interface. Nor was it the implementation (7th Edition, System V, Solaris etc.).
Unix is good because it embodies a set of powerful concepts in a flexible environment. Users could change their user-interface. Programmers had access to a small but sophisticated set of OS APIs. The APIs were independent of the hardware. The system could be changed if the users desired it. By writing code, users learned of the system's limitations and the assumptions made by the designers.
David Tilbrook wrote: ``[Unix] wasn't a great advance in computing; if anything it was a great simplification. [It gave] the user things that were inconceivable prior to that.''
Since 7th Edition, Unix has put on a lot of middle-age
spread. What allows it to survive is the core of
elegant concepts that it contains.