History of Unix

Unix, in the beginning …

In the same year that IBM announced what would become the dominant mainframe architecture for the next two decades, two other things happened that would change the face of computing. The first of these was the invention of the integrated circuit. Though IC’s would show up in computers from the beginning, it would be four more years until the first entirely-IC computer would be brought out in 1968. The second of these events was the announcement by Digital Equipment Corporation of the PDP-8.

In terms of sophistication, computing power, programming language support, and a host of other performance measures, the PDP-8 was very primitive compared to the System 360 brought out the same year, but the PDP-8 was a very different kind of machine. IBM’s system filled up a refrigerated machine room and needed a full-time staff to operate. DEC’s machine fit on top of a desk, ran on ordinary 110V electric feed, and cost a mere 16,000 dollars. One could easily spend over a million dollars on a System 360.

A year later, in 1965, a legend has it that a salesman in Britain coined the term minicomputer in keeping with the popularity of mini-everything in the sixties. The name stuck. DEC’s amazing low-cost computer was an instant hit. Companies which had hitherto had to either rent computer time from larger companies or had no access at all to computing facilities, could now afford their own computers. By 1969, the price of the PDP-8 had dropped to 8000 dollars and DEC had rolled out an incredible array of peripherals and upgrades, as well as several other models.

Destined for fame was a medium-priced 16 bit computer named the PDP-11. It was a solid machine available in a range of performance and price levels, built around a standardized bus and designed to be far more modular than the monolithic offerings from IBM. While IBM invested heavily in the most recent technology and pushing the performance envelope, DEC took technologies a few years old at the time and manufactured machines which matched the performance of what IBM might have sold a few years before, for a tiny fraction of the price. The PDP-11 was an indestructible machine, finding work in factories as proccess control systems, finding use in academic work where mainframes or supercomputers didnt fit in the budget, and selling tens of thousands of installations through the seventies.

And it just so happened that at AT&T Bell Labs, a young hacker named Ken Thompson began to create a new timesharing operating system on an idle PDP-11. In 1972 Dennis Ritchie, the co-creator of the C programming language, joined the project and the new operating system was ported to the PDP-11/70, probably the longest lived computer workhorse in the history of the industry (there are probably several hundred 11/70s still running in the ‘real world’ today) The project they were working on was the first and second versions of UNIX. They created a small, clean, portable operating system that was written entirely in a portable langauge- aside from a few machine- specific issues, the code could be compiled on a new machine and run with little reworking. This was the first operating system not written in assembly or machine language. True, several other OS’s had been written in fortran or Algol, but they were specific to one machine. The goals that Ritchie and Thompson had in mind were not the ultimate in performance but the ultimate in simplicity and portability. And they were amazingly successful in this goal.

That their system ran on machines that were popular in the academic world did much to help spread the UNIX way around. That the entire system fit in 64K of memory and was maintained in source code, made it easy to modify and understand. That it was the first multiuser, multitasking operating system to run on the PDP-11 line, made it very popular. By 1976, UNIX had grown out of just being a research project at AT&T, and had started to spill over into the academic world. Version 6 was widely available in source code and saw wide use outside of AT&T.At the University of California at Berkeley, where much OS work had been done in the past (in particular the pioneering work on the Atlas project in the last 1960’s) , a copy of Version 7 UNIX began to undergo major modification. Soon the work at Berkeley came to overshadow the work at AT&T in importance and techinical bravado.

It is coincidental that version 7 came out the same year as the VAX computer line from DEC did. The VAX was the Virtual Address eXtension of the PDP-11 architecture, according to DEC terminology, but it was in many ways a radical improvement. It was a fully 32-bit machine, and was released with DEC’s new operating system, VMS. But it soon was apparent that the VAX would enjoy the same fame and popularity that its predecessor had through the seventies, and the VAX became the platform of choice throughout the industry. It was also the newest computer at Berkeley, and when version 7 got to Berkeley, Bill Joy headed a great effort to improve it. Berkeley’s product soon surpassed AT&T’s own research and came to be in an informal demand. It was in 1979 that the first Berkeley Software Distribution was released to package together all the changes the Berkeley people had made to version 7 and included advanced memory management and virtuial memory systems, the first such systems in any UNIX version at the time. This release they called 3BSD to distinguish it from the PDP-11 unix line which continued in parallel as 2.xBSD.

The work at Berkeley caught the attention of the Department of Defense Advanced Research Projects Agency (DARPA) they began to fund UCB’s research and supported BSD unix as the standard. Under DARPA guidance, BSD unix incorporated the new networking protocols that were the foundation of the ARPAnet (which would become the Internet several years later) and became the backbone of the new network. 4BSD also was the first UNIX to support the new ethernet networking hardware that was proliferating in the early eighties. By 1983, VAXen running 4.2BSD were to be found populating ethernets and connecting these ethernets into a super-network, an inter-net network run, paid for, and used by the DoD and the academic community.

The next release of BSD, 4.3BSD, made greater headway into freeing BSD distributions from license dependence from AT&T, as well as vastly improving the networking code. All this time, BSD continued to be distributed freely to universities and defense contractors, of course in source code.

The availability of source has been one of the most important parts of the UNIX way of doing things. UNIX first and foremost was and is an OS created by programmers _for_ programmers. Having the source code to our entire system (and often many or all of the individual commands as well) was viewed from the beginning as critical for UNIX users. By the time 4.3BSD was released and was enjoying the heyday of the ‘academic’ UNIX world, the vast body of commercial software for UNIX systems was also sold in source code form. UNIX was modified wherever anyone who needed to modify it felt the neccessity or the deisre to, and often many improvements were made in this fashion, with the improvements ebing included into the next version of the distribution. BSD unix was an open, dynamic system, constantly being changed and improved by users throughout the world, not just at Berkelely, and the result was probably one of the greatest operating systems in history.

By 1985, a number of companies were using 4.3BSD as a jumping-board for their own commercial versions of UNIX. Sun and DEC are the most prominent in this period, with SunOS and Ultrix-32 respectively. SunOS was designed to run on Sun’s line of minicomputers, and Ultrix ran on VAXen. The main differences between 4.3BSD and Ultrix was that Ultrix was DEC’s way of integrating the UNIX and VMS worlds. Ultrix included support to DEC’s proprietary networking system, DECnet, and supported a lot of devices and peripherals on the VAX that were previously out of reach of the BSD community.

At the same time, the folks at AT&T hadnt stood still. They released several versions more of the original Unix line, with Version 9 coming out in 1989 as the final product of the original research, but in 1983 came out with System V rel 2, which incorporated a lot of the good things about 3BSD, but used its own proprietary networking interface and Interproccess communication, and had a difference in philosophy that was sometimes subtle, sometimes glaringly contrasted to BSD. While BSD unix was very much the product of thousands of independed programmers working with freely available source code, imrpoving as they saw fit for their own applications, the SysV line was controlled by AT&T and development strictly regulated. The system itself was much more regimented, oriented more to procedure and a more rigid, ‘official’ feel. It was the product of research at a private corporation, while BSD was the product of open cooperation in the academic community and largely funded by ARPA, and the difference in origin shows through the products to an amazing degree.

As it turned out, the explosion of minicomputer vendors in the early 1980s would follow the SysV line for their own implementations, because AT&T had a money interest in selling licenses and helped vendors develop versions for their own machines. Since the only incentive to push ahead with BSD unix was the disorganized computer science community’s own independent improvements to the system, the SysV camp was the one that pushed into the commercial world as UNIX spread out of just being an academic and Defense niche product. The commercial drive began the slow ascendancy of the SysV side of the Unix world, and today all the major commercial Unixes are based on System V. BSD is still the champion of free, source-available OS’s, and BSD has been ported uniformly to dozens of platforms, but the fact that people cannot charge money for it has prevented much commercial interest in the product.

The middle of the 1980s was an important turning point because right at the high point of BSD unix and the minicomputer, a new invention was on the horizon which would change everything: the RISC workstation. Next time I’ll go into detail about the first RISC workstation, the DECstation 3100. It used a MIPS R2000, the original chip (called the DLX during its development at Stanford) developed by the commonly acclaimed inventors of RISC, Patterson and Hennesey. A year after the DECstations were rolled out in 1988, Sun brought out its SPARC architecture, and HP announced its new workstations. At least a dozen major players got into the workstation market by 1989. I’ll leave the workstation phenomenon for later. There will be much more to say there, since I’ve been personally involed with workstations for a long time now and have worked with a lot more workstation than minis 😉 The availability of cheap powerful microproccessors began the demise of the mini was early at 1983, with the Motorola 68000 being a favorite platform. The Motorola 68020 brought vast computing capability to minicomputer makers and was for a while an unannounced standard challenger to the VAX line, with 68020 multiproccessors (the Sequent Symmetry being the most famous) showing up all over the place, running modified versions of System V unix. As microproccessors became more powerful, many new ‘minis’ came to be built around them. the most prominent were offerings from NCR, AMD, Motorola, and for a brief while the Intel 386, which went out of popularity quickly. By the late 80s companies were starting to make high-performance minis that fit on a desk, and calling them workstations.

Lord Isildur