|Home||Switchboard||Unix Administration||Red Hat||TCP/IP Networks||Neoliberalism||Toxic Managers|
|May the source be with you, but remember the KISS principle ;-)|
Thompson is really the guy who is primarily attributed with developing UNIX. He's an employee of AT&T-Bell Labs at the time-and still is. Dennis Ritchie was the co-developer. It was really those two guys working together who developed UNIX. Actually, they still work together, still develop software, still work in research at Bell Labs, and I'll say a little more about that at the end as we go through the chronology.
Another guy that is sometimes lumped in with Thompson and Ritchie in the development of some of the preliminary ideas is Rudd Canaday, but you don't see his name much. It's really Thompson and Ritchie. Bill Joy is the individual known for BSD, Berkeley Software Distribution, and he is the guy who was in charge of releasing and developing BSD and coordinating it from Berkeley. He went on to great riches and great fame as a co-founder of Sun Microsystems. He doesn't get the fame and glory that Scott McNeilly does, but he gets the money, which is just as good.
Borne wrote the Borne shell (SH), Korn wrote the Korn shell (KSH). Steve Johnson was very involved in writing a lot of the early utilities associated with UNIX. Kernighan was involved in various utilities, but was primarily involved in the C Language with Ritchie-as was Plauger, also a C language guy. Plauger wrote the first commercial C compiler. Interestingly enough, all these guys are still out there doing related things in the UNIX business.
I'm going to take you through this chronologically. It won't be as boring as it looks, but we're going to go through it year by year. We're going back to the source, the births of Dennis Ritchie and Ken Thompson. I don't know if anyone's taken it quite this far back, to this level of detail, but it's not all that detailed so don't panic. It's interesting just to note what age these guys are, when they appeared in the history of computing, and to put them in the context of their times.
Perhaps what is even more interesting, besides where were these guys were born, is what these guys look like. That in itself is fascinating. You might think these guys are the Wright brothers, but in fact, these are the guys. They fit some of the stereotypes we have about computer people, but they're two very bright, very creative guys who created this UNIX business and have been instrumental in seeing that it evolved the way it did. When we come to 1995, when we finally get that far, I'll tell you what they're doing right now.
It's interesting to look at some of the accidents in history that cause things to occur the way they do. In the case of UNIX, the stage was set by events going back at least as far as 1945. There were four or five things that happened over a period of years that made it possible for the whole UNIX thing to happen by the grass roots method that it did.
In 1945, AT&T was involved with an anti-trust case with the federal government. At the time, Western Electric owned half of Bell Labs and AT&T owned the other half of Bell Labs-and AT&T owned all of Western Electric. Why all that was done that way I have no idea, but that was the way it was. The federal government felt that AT&T was monopolistic, so they pushed them in 1956 into a consent decree in which AT&T agreed to make all it's patent technology licensable to the public. They were also restricted to the communications business. As a result, they couldn't be in the computer business. This big event is the reason AT&T never commercialized UNIX along the way-it wasn't allowed to. Instead, it stayed a research project and was disseminated the way that it was. Of course, this wasn't part of Thompson's and Ritchie's game plan, but it's all part of the scenario that played out.
So what were some of the other events that were taking shape back in that same period of time? In '47 Mauchly and Eckert where doing the Univac thing, which made some of our jobs possible. Ten years later, an ex-Univac employee, Bill Norris, started Control Data Corporation. Two years after that Ken Olsen started Digital Equipment Corporation with $70,000 in venture capital money and in the first year sold 53 systems. It's interesting to see what Thompson and Ritchie look like compared to what Mauchly and Eckert look like. These guys look like self-respecting businessmen. There's an interesting contrast in generations there. So there's four of our pioneers that would kind of pair off to make history for us.
One of the other significant events that was taking place at this same time was a project going on at MIT called Project MAC (Multiple Access Computers). They were doing research on time-sharing systems, trying to allow multiple users to interactively use a computer system. So time-sharing and multi-programming--all that multi-user stuff--is really evolving and taking place around 1963 and in the early '60's.
As an offshoot of that, some of the big companies came in and said this is pretty neat technologies, let's try to commercialize that. So AT&T, GE, and IBM formed a partnership with MIT and Project MAC to try to develop a time-sharing operating system called MULTIX. MULTIZ was meant to be a large multi-user system, but it turned out that this large multi-user system could only support a total of one or two users interactively which isn't exactly what IBM and AT&T had in mind when they started out on the project. (GE ultimately was able to turn MULTIX into a viable commercial product.)
Not too long after that, in 1969, AT&T Bell Labs said enough is enough, we're pulling out of this Project MAC sinkhole. Around that same time, these two guys, Thompson and Ritchie, were finishing up some education requirements. Here's another Berkeley connection: Ken Thompson got a Masters Degree in Electrical Engineering from nowhere else but Berkeley so that's the link back to why the software ends up back at Berkeley and we end up with a thread of UNIX going through the Berkeley route.
Dennis Ritchie was working and finishing up a degree in Mathematics at Harvard, and I don't really know all the details, but I guess he got a vision at the end of his course and dissertation work and decided there was no point in taking the final qualifier exam, so he decided not to get the degree. He ended up without a degree, without his Ph.D., decided to bag it and just go to work.
So we have these two guys, Thompson and Ritchie, who go to work for Bell Labs thinking they're going to work on this fantastic new operating system called MULTIX. So they're all fired up and excited and do in fact spend a little time on it but within months of when they get there, the plug gets pulled and they don't have a project. Well, no problem, because Thompson figures he could have done it better himself anyway, which is in fact the case. So he says, I'm going to write a multi-user system.
One of the main motivations for Thompson embarking on this project was that he needed a decent operating system to run his game called Space Travel on, so instead of optimizing Space Travel he decided to write a new operating system. He jumped right on it.
There was a one month period, the story goes, when his wife was away from home on vacation. With all the extra time he could really focus on this thing, he basically wrote UNIX in one month. He wrote a kernel, a shell, a file handling system, and one of the other utility sets and had a working operating system. He did this on a 4K machine with 18-bit words and that's what UNIX ran on originally. You hear the folklore of Bill Gates writing his 4K basic compiler, well Thompson wrote a 4K operating system--a 4K multi-user operating system--which is pretty impressive.
So the four components of the original system were the kernel, shell, an editor, and an assembler. So he said, well we'll do the kernel in one week, the shell in another, then we need an editor of course, so we'll spend a week on that, then we need to have something that can assemble the program, so we'll do another week on that. Think how much time you invest nowadays to put together projects like that. It is unbelievable what a few, or one, really smart person can do in a short period of time!
This is all happening in 1969-1970. I've got another tidbit here about DEC. This is the year Digital Equipment Corporation sells 250,000 PDP-11s. So that's another key event that's going to make this all possible: the minicomputer explodes on the market place. They're very cheap, and DEC makes them easily available to Universities by giving them away. So now the universities have access to real computing power. Meanwhile, we've got AT&T who isn't going to be allowed to sell this operating system that they've developed, so they end up giving it away to the universities as well.
It's interesting that all these events had to happen and you could have never planned it. You couldn't have said at the outset, we're going to make this whole thing turn out that UNIX is the most innovative, influential, operating system in the history of computing. And it really is. If you look at all the other operating systems, there are many ideas that are derived from UNIX. Look at the DOS commands. DOS took baby elements out of UNIX--it's just ideas completely extracted from UNIX.
In 1971 they published their first users manual and began the tradition of calling the releases of UNIX after the users manual, which is a neat concept. Rather than coming out with a new release and saying we've go to document it, they just accumulate enough stuff, document it and decide to have a new release. This is a nice way to do it--you don't have to wait for the documentation, because you don't have to wait for the release to get the documentation.
The original version of UNIX was written in PDP assembly language. In 1972 it was rewritten in a language called C, which is another fundamental breakthrough in the whole process--they developed this new programming language just so they could write the operating system in it.
(C is a high level language you're all probably somewhat familiar with.) So UNIX was, if not the first, one of the first, operating systems written in a high level language. It disconnected itself and positioned itself for affordability like an application program as opposed to being written in detailed assembly language. Of course at this time, they still took advantage of a lot of the idiosyncrasies of the PDP architecture.
It's always interesting to see what else was going on at the time all this happened, to see these event in the context of history. It turns out that 1969 was a watershed year for technological advances. Man landed on the moon. The first successful open-heart transplant surgery took place. I got my masters degree. Nixon became president. Yasser Arafat and the PLO came on the world scene. Golda Maier at 71 is sworn in as Israel's 4th Premiere. Concord makes it's first supersonic flight.
Artificial transplant, Charles DeGall, anti-war activists, men on the moon, Woodstock, Khadafi's early days. Free love and sex conferences in Copenhagen. And another super big one, this is the same year that the Internet gets started. The Internet is another key piece to the whole puzzle. The fact that the Internet and the interconnection to the universities all took place at the same time is the thing that made this UNIX spread as well.
Digression is response to a question from the audience: The trivia behind the name UNIX is always interesting. MULTIX is the name that came out of Project MAC. These guys being the computer people that they were, called it UNIX, which is a pun on eunuchs, spelled differently. The pun there is that UNIX was supposed to be a multi-user system but MULTIX really turned out to be a single-user system, so they're going to write a real multi-user system and call it UNIX. And to jazz the name up somewhere along the way someone changed the last letter to an x.
We'll jump ahead a little bit to 1973 and talk a little about some of the innovations. One of the revolutionary ideas in UNIX is this concept of pipes, where data can just move from program to program. Other operating system never really had this idea. Pipes allow you to write programs that do only one thing and then interconnect them very easily to perform a larger task. So the output of one program can immediately be fed in as input into another program without having to reformat, transform, manipulate and fool around with the data.
Digression is response to a question from the audience: Here's a good quote from Dennis Ritchie where he says "UNIX is simple and coherent, but it takes a genius, or at any rate a programmer, to understand and appreciate it." And in fact you might say a mathematician, because he's basically got a Ph.D. in mathematics from Harvard, which is another indication of why the languages are so terse and precise. These guys wrote it for themselves. That's the fundamental thing, they wrote UNIX for themselves, not for anybody else. And now, 25 years later, we are critiquing it based on a completely different set of standards.
It was also in 1973 that Thompson gave the first public presentation on UNIX. They'd been doing this research for four years and had developed a lot of experience with it, so in 1973 they wrote their first paper.
In 1974, that paper that Thompson had delivered orally was published as part of the Communications of the ACM, which gave it a lot of visibility in the academic community because the Communications of the ACM was the most prestigious publisher, at least at that time, of academic stuff in the computing field. Some people at Berkeley latched onto it, which is really no surprise, he's one of their own so to speak--Thompson had graduated from Berkeley, and I'm sure he still had friends and faculty and people he still had relationships with still there. So the first copy of UNIX goes out to the University of California at Berkeley. That was actually the fourth so-called release of UNIX.
Everyone knows Kernighan and Ritchie's C Programming book. If you've been involved in UNIX, it's sort of the bible for the C programming language. But the foundation for that particular book and the style of that book was actually developed by Kernighan and Plauger. These two guys set the style for C programming. It was really Plauger more Kernighan , because Plauger had written many of these programming style books and other people outside of Bell Labs at this point in time picked that style up and used it. That's the style that Kernighan and Ritchie used when they wrote the C programming book as well.
At this point, Thompson takes a sabbatical to where else but back to Berkeley. So he takes a year off from Bell Labs and goes back to do research, which I'm sure is just another year of working on UNIX at Berkeley instead of working on UNIX at Bell Labs. The advantage there is he's working with a new group of people, he's got new mental stimulation and he's got ideas coming in from other universities that he probably didn't have when he was at AT&T. So there's always been a close synergy between the two organizations.
Then it was in '76 that another one of these books came out by Plauger and Kernighan on software tools, which is in the same style as the C programming language book. Ethernet was invented in 1976 and some user groups were formed. Really the first users group was formed in '77 and not surprisingly, it was formed as a subgroup within DECUS, because at this point in time the only machine that UNIX ran on was Digital Equipment Corporation's PDP systems. Those were the only machines and they proliferated throughout the university and UNIX proliferated along with it.
By this time, the Internet, then called the Arpanet, was cranking pretty well and was an effective means of exchanging ideas and what not. So all that stuff happening at the same time synergistically encouraged lots of activities.
In '78 Berkeley makes their first release of the software. They basically released it to other universities who had participated in making improvements to it. And coincidentally, this is another quirk of fate, this guy Bill Joy was at Berkeley getting his Ph.D. and he happened to get the job of being in charge of this particular lab and having responsibility for this UNIX stuff. It turned out to be a pretty fortuitous crossing of events because he subsequently left Berkeley and co-founded Sun Microsystems.
It was in '78 that the first non-DEC UNIX port was done to an Interdata 832, another minicomputer. But in the first ten years of UNIX's existence it only ran on Digital Equipment Corporation machines. That has to be one of the greatest missed opportunities of all time. DEC never capitalized on this. In fact, when AT&T got a VAX computer, an upgrade from the PDP system, Thompson and Ritchie refused to port it, or move it up to the VAX system, because Digital wouldn't support and endorse UNIX.
The point that I wanted to make earlier, which obviously I passed, is that the first application that ran on UNIX was an AT&T patent application, managing patent data within AT&T. They got a new PDP system for that patent application but by the time they got that...
Editor's note: A small portion of the talk was lost during recording as the cassette changed sides.
...A Series or 2200 system, keep the OS. I don't really need it. Just give me the hardware. But that's an interesting tidbit I forgot earlier. So they never did install the OS on it.
It was also at this time that Plauger formed a company called Whitesmiths--which I think is the opposite of blacksmiths--and sold the first commercial C compiler. Santa Cruz Operations started operations as well at that time.
In 1979 the seventh edition of UNIX comes, which is the last one before they changed to the system 5 kind of release numbers and notations. It's the first time Bell Labs ever put a TM on something. They recognized something of value, so they put a TM on the UNIX name and they called it the UNIX time sharing system. Which is really what UNIX is, a multi-user time-sharing system. They have still not registered a patent or a trademark on UNIX. I don't know exactly why.
The UNIX users group that formed--USENIX--was really an academic group. All these universities had source license agreements and in order to participate you had to have such a license. It was also in 1979 that there started to be some commercial users of UNIX, but they couldn't attend the users group meeting because they didn't have source licenses. They were just commercial users and had object code versions, not source code versions. So that formed the stage for some competition in the users group area.
In 1980, the BSD version goes back to Bell Labs, who incorporate many of the ideas back into UNIX. As a matter of fact, many of the innovations for UNIX came via the Berkeley channel back into Bell Labs. It was in 1980 that Berkeley got a DARPA contract. (DARPA was the organization that funded the Arpanet and ultimately the Internet.) This group at Berkeley called the computer system research group was formed and that's the one that tends to be known and associated with UNIX at Berkeley.
1980 is also the year that SCO decides to become a distributor for Microsoft XENIX. And a point I didn't make in '79 is that in '79 Microsoft was a distributor and reseller of XENIX as well, before they really pushed with DOS. DOS didn't really come on the scene until '81. So they started with UNIX as their so-called robust operating system they were going to push, and then of course the IBM PC came out and they latched onto DOS, pushing UNIX to the background. They said, we've got a pretty good thing going here so we'll stick with it. It was in '81 that the IBM PC came out and Microsoft's interest in DOS replaced any real interest or focus they saw in the UNIX market.
In '82 Bill Joy leaves the Berkeley group and co-founds Sun Microsystems. AT&T makes its first commercial release of UNIX. HP gets in the business with HP-UX on its 9000 work station. DEC releases a version of UNIX called ULTRIX and IBM has one called CPIX.
In 1983, Thompson and Ritchie receive industry recognition by being award the ACM Turing award, from which that quote that I started out with was taken. The Turing award is probably the most prestigious award you can receive in the academic computer science community.
In 1984, there was an article in fortune magazine stating that of the 750 universities giving computer science degrees, 80% had UNIX licenses. It gives you an idea of how pervasive UNIX was in the academic community and how it's not so surprising that when all these people graduated from college, that's what they knew. That's what operating systems were, that's what they knew how to work. They were comfortable with it. They weren't intimidated by the arcane commands and so on.
If you just add up the number of computer science graduates and people that were exposed to UNIX before they graduated from college, it's anywhere from 1/4- to 1/2- million people. That's a lot of brainwashing, a lot of grass roots influence, to "own" these graduates who have formed the foundation of our work force throughout industries. So it's not so surprising that UNIX has been as pervasive as it has. Of course that's changing now with DOS, with Microsoft, but they don't teach DOS as an operating system like they're going to teach in a university, so UNIX is still going to be the operating system of choice to teach multi-programming, multi-tasking, memory management, and all the complexities that one associates with an operating system that don't really exist in DOS. Maybe that will change with Windows but we'll have to see.
X/Open was formed in 1984 and X/Open is now the company that brands and certifies whether or not an operating system is really a UNIX operating system and can be called UNIX.
Digression is response to a question from the audience: So what is UNIX? Obviously UNIX is an operating system, that's what we think it is, but it's actually a Trademark. UNIX is a set of four letters that is a trademark currently owned by X/Open company in the UK. They didn't start trademarking it until 1979, when they put the TM, and didn't register it until 1985. In fact, just for kicks I had my attorney do a trademark search on it and look up the lineage of the dates that things happened. May 13, 1985 the mark was registered for computer hardware. They stated that the mark was first used in December 1984. So they initially saw the value as a mark to be used on equipment.
June 24, 1985 they made another filing for the mark under computer software. The first date of usage they cited there was 1972. So they jumped back in time. It's pretty amazing that you can do that. That that many years can elapse and you can register the mark even though it's been out there and been used. Then there were a series of transfers between companies I'll highlight in a bit, but the upshot of all that is that the mark was given by Novell to the standards organization called X/Open in the UK and that the standards organization now has responsibility for certifying that a particular operating systems meets a set of standards that can be called UNIX. So they license the right, and qualify the right for a version of an operating system to be called UNIX.
To put things into perspective for us Unisys people, 1986 is the year that Unisys was born and another bit of trivia, 1985 is the year Burroughs celebrated it's 100th year of existence. So Blumenthal really did a number on a company with a lot of history and a lot of success. So Burroughs ceased to exist after 100 years, Blumenthal made a lot of money, and subsequently retired to France. The rest is history with Sperry and Burroughs trying to survive as a company called Unisys and recreate themselves in this open market.
I didn't find any events in 1987--it must have been a slow year.
The UNIX wars were fast and furious and hard in the late 80's and early 90's. Everyone was jockeying for position, trying to get market share. AT&T recognized that Sun was a market leader so they bought 20% of Sun and wanted to form an alliance and build a partnership with Sun. Of course that made all the other guys completely panic so the other companies formed another consortium called The Open Software Foundation (OSF). That was IBM, DEC, HP, and a few lesser players. They said we're going to form ours and build our UNIX and they battled it out like that for a while.
There's another interesting development in '88 with David Cutler, who was the original designer and developer of VMS, Digital's operating system for the VAX. He was hired by Microsoft to build a new operating system for Microsoft that became Microsoft Windows NT. They also started looking at this mock kernel as a vehicle, or as a basis, for some of their development. Subsequently, they did adopt the mock kernel, which was also adopted by OSF and has been adopted by other organizations as the nucleus for their operating systems.
In 1989 the C language was standardized by ANSI, HP became the second largest shipper of UNIX workstations behind Sun, and Microsoft confused SCO with some money. I don't what ever happened with that, if they still own part of SCO or not. So the industry is still reacting to this AT&T and Sun alliance. OSF is trying to build a foundation to compete with them. One of the things that has come out of OSF which is certainly significant is the Motif user interface which is the basis for X/Windows and that came out at MIT.
It was in 1990 that UNIX International, which was a subsidiary of AT&T, released SVR4 which is still the standard UNIX version that's out there now, so that's been around quite a while and everyone is just sort of tweaking and modifying and revising that for their hardware. But that particular version of UNIX, which is an amalgamation of System 5, BSD, and XENIX, is by far and away the most standard version of UNIX in the commercial market place.
In 1991 AT&T incorporated the UNIX systems laboratory USL with a consortium of other companies to control the development of UNIX. I don't understand sub-this , sub-that, all the legal ramifications of it, but they formed a lot of subsidiaries and ultimately Novell ended up buying into this and is now the owner of the UNIX operating system, which I'll come to in just a minute. AT&T acquired NCR and it subsequently became AT&T GIS. It's impossible to keep all these mergers and what not straight. It was really a time of incredible change of ownership and alliances taking place in the late 80's early 90's.
In 1992 AT&T decides it doesn't need Sun anymore, because it's decided how it wants to deal with the UNIX source code, so it divests itself of it's ownership in Sun. And Digital's seen some rough items and it's founder, Ken Olsen, resigns pretty much as DEC introduces it's Alpha AXP, which was considered to be a pretty revolutionary 64-bit RISC processor. It's interesting to note that the new releases of the Intel chip are going to be 64-bit based. I don't know if it's the P6 or the P7 but the next two or three levels out will be a 64-bit processor, which is going to mean some big changes for operating system and hardware designers as well.
1993 Novell buys USL, which owns the UNIX source code and the UNIX name, from AT&T. Then they decide they'll give the name UNIX to the X/Open organization. So Novell owns the UNIX source code. X/Open owns the UNIX name and X/Open decides who can use the UNIX name. Novell has sold some source code licenses to other organizations, one of which is Sun. I'm sure they've sold others as well. The one they sold to Sun they sold for $82 million. So they probably did OK on that investment.
A little bit of trivia: Novell has sold 35,000 copies of UNIXWare 93 and Microsoft has sold 250,000 copies of Windows NT. That obviously is a war we don't know the result of yet or the winner of yet.
It was in 1993 that the Berkeley CSRG group disbanded. So the world has radically changed. All these events that made UNIX possible don't really exist anymore. There's not that consortium of free distribution. The Berkeley group, which was the catalyst and focal point that made it all happen, no longer exists. There was a source code version, if you're interested in looking at the BSD version, which is very similar to the System 5 release 4 version you can get through O'Rielly publishers and what the guys at Berkeley did, they published the source code as their final act. They said, if we're out of the game and we're not playing politics anymore, we're publishing all the source code and they were immediately sued by Novell. So they haggled over what was public and what wasn't public. They went through it subroutine by subroutine or C line by C line and said no, we wrote that, no, University of Stellenbash wrote that, no, University of Toronto wrote that, no, no, no. And they got it to the point that 90% of the source code that was in the version of BSD that they were releasing could be traced outside of Novell, who owned it at that time. So that's what's published. You can buy a CD ROM for $40 or $50 from O'Rielly Publishers and you can see 90% of the source code that's used in the operating system. One of the guys that was on the BSD team has formed a company called BSDI and they wrote the next 10-15% they needed to make it a full operating system. They sell that with the source code for $1,000 with support. They settled the lawsuit with Novell but one of the things they can't do is get near the word UNIX so it's called BSD OS but it's 90% UNIX.
Computer. What about the development history of Unix?
Thompson. The early versions were essentially me experimenting with some Multics concepts on a PDP-7 after that project disbanded, which is about as small a team as you can imagine. I then picked up a couple of users, Doug McIlroy and Dennis Ritchie, who were interested in languages. Their criticism, which was very expert and very harsh, led to a couple of rewrites in PDP-7 assembly.
At one point, I took BCPL from Martin Richards at MIT and converted it into what I thought was a fairly straight translation, but it turned out to be a different language so I called it B, and then Dennis took it and added types and called it C.
We bought a PDP√11≈one of the very first≈and I rewrote Unix in PDP-11 assembly and got it running. That was exported to several internal Bell telephone applications, to gather trouble reports and monitor various things like rerouted cables. Those applications, independent of what we were doing, started a political pressure to get support for the operating system; they demanded service. So Bell Labs started the Unix Support Group, whose purpose was to serve as the interface to us, to take our modifications and interface them with the applications in the field, which demanded a more stable environment. They didn't like surprises. This grew over time into the commercial version from AT&T and the more autonomous version from USL.
Independently, we went on and tried to rewrite Unix in this higher-level language that was evolving simultaneously. It's hard to say who was pushing whom≈whether Unix was pushing C or C was pushing Unix. These rewrites failed twice in the space of six months, I believe, because of problems with the language. There would be a major change in the language and we'd rewrite Unix.
The third rewrite≈I took the OS proper, the kernel, and Dennis took the block I/O, the disk≈was successful; it turned into version 5 in the labs and version 6 that got out to universities. Then there was a version 7 that I rewrote for Johnson and Ritchie to port to an Interdata 832; I rewrote the OS with almost all its language intact but reapportioned the portable and nonportable parts so that the next port would be better.
Around version 6, ARPA [Advanced Research Projects Agency] adopted it as a standard language for the Arpanet community. Berkeley was contracted to fix the Arpanet interface≈which started at the University of Illinois and was extended by Berkeley's getHostbyName interface≈and to add virtual memory to Bell Labs' port to the VAX.
There's a nice history of Unix written by Dennis that's available on his home page [ed.≈"The Evolution of the Unix Time-Sharing System,"].
Computer: What accounted for the success of Unix ultimately?
Thompson: I mostly view it as serendipitous. It was a massive change in the way people used computers, from mainframes to minis; we crossed a monetary threshold where computers became cheaper. People used them in smaller groups, and it was the beginning of the demise of the monster comp center, where the bureaucracy hidden behind the guise of a multimillion dollar machine would dictate the way computing ran. People rejected the idea of accepting the OS from the manufacturer and these machines would never talk to anything but the manufacturer's machine.
I view the fact that we were caught up in that≈where we were glommed onto as the only solution to maintaining open computing≈as the main driving force for the revolution in the way computers were used at the time.
There were other smaller things. Unix was a very small, understandable OS, so people could change it at their will. It would run itself≈you could type "go" and in a few minutes it would recompile itself. You had total control over the whole system. So it was very beneficial to a lot of people, especially at universities, because it was very hard to teach computing from an IBM end-user point of view. Unix was small, and you could go through it line by line and understand exactly how it worked. That was the origin of the so-called Unix culture.
For computer science at Bell Laboratories, the period 1968-1969 was somewhat unsettled. The main reason for this was the slow, though clearly inevitable, withdrawal of the Labs from the Multics project. To the Labs computing community as a whole, the problem was the increasing obviousness of the failure of Multics to deliver promptly any sort of usable system, let alone the panacea envisioned earlier. For much of this time, the Murray Hill Computer Center was also running a costly GE 645 machine that inadequately simulated the GE 635. Another shake-up that occurred during this period was the organizational separation of computing services and computing research.
From the point of view of the group that was to be most involved in the beginnings of Unix (K. Thompson, Ritchie, M. D. McIlroy, J. F. Ossanna), the decline and fall of Multics had a directly felt effect. We were among the last Bell Laboratories holdouts actually working on Multics, so we still felt some sort of stake in its success. More important, the convenient interactive computing service that Multics had promised to the entire community was in fact available to our limited group, at first under the CTSS system used to develop Multics, and later under Multics itself. Even though Multics could not then support many users, it could support us, albeit at exorbitant cost. We didn't want to lose the pleasant niche we occupied, because no similar ones were available; even the time-sharing service that would later be offered under GE's operating system did not exist. What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.
Thus, during 1969, we began trying to find an alternative to Multics. The search took several forms. Throughout 1969 we (mainly Ossanna, Thompson, Ritchie) lobbied intensively for the purchase of a medium-scale machine for which we promised to write an operating system; the machines we suggested were the DEC PDP-10 and the SDS (later Xerox) Sigma 7. The effort was frustrating, because our proposals were never clearly and finally turned down, but yet were certainly never accepted. Several times it seemed we were very near success. The final blow to this effort came when we presented an exquisitely complicated proposal, designed to minimize financial outlay, that involved some outright purchase, some third-party lease, and a plan to turn in a DEC KA-10 processor on the soon-to-be-announced and more capable KI-10. The proposal was rejected, and rumor soon had it that W. O. Baker (then vice-president of Research) had reacted to it with the comment `Bell Laboratories just doesn't do business this way!'
Actually, it is perfectly obvious in retrospect (and should have been at the time) that we were asking the Labs to spend too much money on too few people with too vague a plan. Moreover, I am quite sure that at that time operating systems were not, for our management, an attractive area in which to support work. They were in the process of extricating themselves not only from an operating system development effort that had failed, but from running the local Computation Center. Thus it may have seemed that buying a machine such as we suggested might lead on the one hand to yet another Multics, or on the other, if we produced something useful, to yet another Comp Center for them to be responsible for.
Besides the financial agitations that took place in 1969, there was technical work also. Thompson, R. H. Canaday, and Ritchie developed, on blackboards and scribbled notes, the basic design of a file system that was later to become the heart of Unix. Most of the design was Thompson's, as was the impulse to think about file systems at all, but I believe I contributed the idea of device files. Thompson's itch for creation of an operating system took several forms during this period; he also wrote (on Multics) a fairly detailed simulation of the performance of the proposed file system design and of paging behavior of programs. In addition, he started work on a new operating system for the GE-645, going as far as writing an assembler for the machine and a rudimentary operating system kernel whose greatest achievement, so far as I remember, was to type a greeting message. The complexity of the machine was such that a mere message was already a fairly notable accomplishment, but when it became clear that the lifetime of the 645 at the Labs was measured in months, the work was dropped.
Also during 1969, Thompson developed the game of `Space Travel.' First written on Multics, then transliterated into Fortran for GECOS (the operating system for the GE, later Honeywell, 635), it was nothing less than a simulation of the movement of the major bodies of the Solar System, with the player guiding a ship here and there, observing the scenery, and attempting to land on the various planets and moons. The GECOS version was unsatisfactory in two important respects: first, the display of the state of the game was jerky and hard to control because one had to type commands at it, and second, a game cost about $75 for CPU time on the big computer. It did not take long, therefore, for Thompson to find a little-used PDP-7 computer with an excellent display processor; the whole system was used as a Graphic-II terminal. He and I rewrote Space Travel to run on this machine. The undertaking was more ambitious than it might seem; because we disdained all existing software, we had to write a floating-point arithmetic package, the pointwise specification of the graphic characters for the display, and a debugging subsystem that continuously displayed the contents of typed-in locations in a corner of the screen. All this was written in assembly language for a cross-assembler that ran under GECOS and produced paper tapes to be carried to the PDP-7.
Space Travel, though it made a very attractive game, served mainly as an introduction to the clumsy technology of preparing programs for the PDP-7. Soon Thompson began implementing the paper file system (perhaps `chalk file system' would be more accurate) that had been designed earlier. A file system without a way to exercise it is a sterile proposition, so he proceeded to flesh it out with the other requirements for a working operating system, in particular the notion of processes. Then came a small set of user-level utilities: the means to copy, print, delete, and edit files, and of course a simple command interpreter (shell). Up to this time all the programs were written using GECOS and files were transferred to the PDP-7 on paper tape; but once an assembler was completed the system was able to support itself. Although it was not until well into 1970 that Brian Kernighan suggested the name `Unix,' in a somewhat treacherous pun on `Multics,' the operating system we know today was born.
The PDP-7 Unix file system
Structurally, the file system of PDP-7 Unix was nearly identical to today's. It had
- An i-list: a linear array of i-nodes each describing a file. An i-node contained less than it does now, but the essential information was the same: the protection mode of the file, its type and size, and the list of physical blocks holding the contents.
- Directories: a special kind of file containing a sequence of names and the associated i-number.
- Special files describing devices. The device specification was not contained explicitly in the i-node, but was instead encoded in the number: specific i-numbers corresponded to specific files.
As for Plan 9, it combines three big ideas. First, system resources and services are represented as files in a directory hierarchy. This comes from Unix, it is worked even better in Linux, but Plan 9 pushes it hardest. Not only devices, but things like Internet domain name servers look like files. Second, remote file systems -- likewise not a new or unique idea. But if all system resources are files, grabbing bits of another machine's resources is easy, provided the permission gods permit. Third, and unusual, is that the namespace -- the hierarchy -- of files seen by a particular process group is private to it, not machine-wide.
Sprite is a research operating system whose development I have had the pleasure of leading over the last eight years. Four graduate students and I started the project in the Fall of 1984 because we felt that current operating systems were paying insufficient attention to local-area networks. It seemed to us that networking support had been added in a quick and dirty fashion to systems that were designed to run stand-alone. As a result, networked workstations didn't work well together. At the time we started Sprite there were no good network file systems (even NFS didn't exist yet) and administering a network of workstations was a nightmare.
Our goal for Sprite was to "do networking right" by building a new operating system kernel from scratch and designing the network support into the system from the start. We hoped to create a system where a collection of networked workstations would behave like a single system with both storage and processing power shared uniformly among the workstations. We hoped that users would be able to tap the power of the entire network while preserving the simple behavior and administrative ease of a traditional time-shared system.
I think that we achieved these goals. Four technical accomplishments stand out in my mind. First and foremost is Sprite's network file system, which demonstrated that network file systems can provide a convenient user model without sacrificing performance. Sprite's file system allows file sharing while completely hiding the network. It provides the same behavior among workstations that users would see if they all ran on a traditional time-sharing system. Even I/O devices can be accessed unformly across the network, and user processes can extend the file system by implementing its I/O and naming protocols using pseudo devices and pseudo file systems. At the same time, Sprite uses aggressive file caching to achieve high performance. Five years after its construction, Sprite still has the fastest network file system in existence.
Computer systems didn't talk to each other in the early days of computing. Even the various computer lines made by the same company often needed interpreters. And forget any interoperability of systems by different vendors!
In addition, operating systems very often performed only limited tasks, and only on the machines for which they were written. If a business upgraded to a bigger, more powerful computer, the old operating system probably wouldn't work on the new computer, and often the company's data had to be entered -- again -- into the new machine.
To try to develop a convenient, interactive, useable computer system that could support many users, a group of computer scientists from Bell Labs and GE in 1965 joined an effort underway at MIT on what was called the Multics (Multiplexed Information and Computing Service) mainframe timesharing system.
Over time, hope was replaced by frustration as the group effort initially failed to produce an economically useful system. Bell Labs withdrew from the effort in 1969 but a small band of users at Bell Labs Computing Science Research Center in Murray Hill -- Ken Thompson, Dennis Ritchie, Doug McIlroy, and J. F. Ossanna -- continued to seek the Holy Grail.
From Multics to something else
Actually, Multics worked, and eventually became a product, but not initially on the scale its developers wanted. "Even though Multics could not then support many users, it could support us, albeit at exorbitant cost," Ritchie explained. "We didn't want to lose the pleasant niche we occupied. What we wanted to preserve was just not a good environment in which to do programming, but a system around which a fellowship could form."1
"During 1969, we began trying to find an alternative to Multics," Ritchie said. "Throughout 1969, we lobbied for a medium-scale machine for which we promised to write an operating system. Our proposals were never clearly and finally turned down, but they were never accepted, either.
"Eventually, we presented an exquisitely complicated proposal involving outright purchase, third-party lease, and equipment trade-in, all designed to minimize financial outlay," Ritchie said. But the proposal was rejected. "Rumor soon had it that Bill Baker, the vice president of Research, exclaimed 'Bell Labs just doesn't do business this way!'"
Ritchie conceded, "Actually, it is perfectly obvious in retrospect -- and it should have been at the time -- that we were asking the Labs to spend too much money on too few people with too vague a plan." He also noted that buying a new machine might lead to another expensive Multics project, which management wanted to avoid, or developing another computer center, a responsibility which Research wanted to avoid.
In the beginning: botched acronyms
The origins to UNIX can be traced back, somewhat fuzzily, to the early spring of 1969 during an informal discussion of just what the researchers wanted a computer operating system to do.
Thompson, once it was obvious that Multics was going away, decided to satisfy two urges: to write an operating system of his own, and to create an environment in which to do future work. "Dennis, (Rudd) Canaday and myself were just discussing these ideas of the general nature, of keeping the files out of each other's hair, and the nitty-gritty of expanding, of the real implementation: where you put the block address ...", Thompson explained.
At the end of the discussion, Canaday picked up the phone, dialed into a Bell Labs dictation service, and read in his notes. "The next day these notes came back," Thompson said, "and all the acronyms were butchered, like 'inode' and 'eyen.'"
Butchered or not, the notes became the basis for UNIX. Each researcher received a copy of the notes, "...and they became the working document for the file system," Thompson said.
The famous PDP-7 comes to the rescue
While mulling over the problems of operating systems in 1969, Thompson in his spare time developed a computer game called "Space Travel." The game simulated the motion of the planets in the solar system. A player could cruise between the plants, enjoy the scenery, and even land the ship on the planets and moons.
The game, first written on Multics and then transliterated into Fortran for the GECOS operating system, ran on a GE 635 computer. The game's display was jerky and hard to control because the player had to type commands to control the ship. Also, it cost about $75 in CPU time on the big GE 635, a cost that hardly endeared it to management.
"It did not take long, therefore, for Thompson to find a little-used PDP-7 computer with an excellent display terminal," Ritchie explained. "He and I rewrote 'Space Travel' to run on this machine." Their effort included a floating-point arithmetic package, the pointwise specification of the graphics characters for the display, and a de-bugging subsystem that continuously displayed the contents of typed-in locations in the corner of the screen.
"All this was written in assembly language for a cross-assembler that ran under GECOS and produced paper tapes to be carried to the PDP-7," Ritchie said. "'Space Travel,' though it made a very attractive game, served mainly as an introduction to the clumsy technology of preparing programs for the PDP-7."
"It was the natural candidate as the place to put the file system," Thompson said. "When we hacked out this design, this rough design of the file system on the dictation machine that day in Canaday's office, I went off and implemented it on the PDP-7."
I was surprised to read Bob Metcalfe in Infoworld Dec 13 1999, declaring not only that in the seventies Unix was an open source operating system, but also that Multics, ITS, and Tenex were.
I knew about Unix - good grief, practically anyone with an interest in computers beyond the merely utilitarian knows about Unix. It was the ultimate high-powered computer OS when I started learning about computers. And anyone who's bothered to read a bit of computing history knows about AT&T and Unix.
But Multics, ITS and Tenex as open source OSes? I wasn't aware of that! Open source to what degree? Licensed similar to BSD? GPL? Public domain?
These OSes are part of general computing history. I'm sure they embody lessons that would be valuable for everyone who has glared at his/her compiler and cursed the @#$%^&* who wrote such pathetic linkage editors, or suchlike.
And what else in general computing history is likewise submerged in the ink of a thousand forgotten print-outs?
I heard some time ago about a tape that mainframe developers had in the seventies, containing source code for various utilities, etc. I know that Madnick and Donovan, authors of a book imaginatively titled "Operating Systems", that actually contained a sample System/360 operating system, had a PL/I System/360 simulator and other software related to the book. What happened to it, is anyone's guess.
PC Magazine once had a habit of publishing the source code (80x86 assembler) to any number of MS-DOS utilities. This habit in itself should go far to dispel the idea that open source in and by itself has negative effects on business. PC Magazine is still around, their publishers, Ziff-Davis, are as large as life and as ugly, and would no doubt throw a wobbly if anyone ever suggested that they had given away their crown jewels with that long-standing series of MS-DOS utilities. They don't do it any more, but then I suspect that most of their readers are "beyond" that. Or in other words, they aren't interested in learning Intel assembler. (Do I blame them?)
BYTE once even published the circuit diagrams to an XT clone, by Ciarcia. If that isn't "open source", what is?
This article traces some of the intermediate history of the UNIX Operating System, from the mid nineteen-seventies to the early eighties. It is slightly updated from an article that appeared as ``The Evolution of UNIX from 1974 to the Present, Part 1'' in Microsystems[Darw1984a]. It was intended as part 1 of 3; unfortunately, that issue was also the last issue of Microsystems. This article discusses ``Research UNIX'': V6, V7 and V8; and tells the tale of many programs and subsystems that are today part of 4.4 BSD, System V or both. Subsequent articles were planned to discuss in more detail the history of Berkeley UNIX, System V, and commercialized UNIXes. We have not written those other articles; this article is being submitted to DaemonNews in hopes that those who have written other histories of other parts of UNIX's history will come forward."
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least
Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.
Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info|
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Last modified: September 12, 2017