<< , Title , Contents

Part II

With the research breakthrough of a portable computer operating system, "the first UNIX applications were installed in 1973 on a system involved in updating directory information and intercepting calls to numbers that had been changed. The automatic intercept system was delivered for use on early PDP-11s. This was essentially the first time UNIX was used to support an actual, ongoing operating business." (Mohr, pg. 26)

Different operations sites had taken on to create computer software to meet similar needs, such as print spooling, mail, help, etc. Tague's group's assignment was to gather the software and to determine what the standard should be and send the standard back out to the sites. Tague credits the technical strength of UNIX for making software standardization possible. UNIX "made it easy," he explains, "to get the right stuff in without upsetting the whole world."

Establishing a standard UNIX, according to Tague, was "a process of negotiation and compromise with the UNIX-using community -- not a unilateral decision." (Ibid.) His group and the people at the variety of Bell sites "often ended up arguing things out until everybody understood the issues and a suitable compromise was made," he relates. (Ibid.)

Tague describes how his group the UNIX Support Group (USG) which had been established in September of 1973 "released the first C version of UNIX internally. [Generic I, II, and III were produced by these intitial efforts.] In parallel with our efforts," he notes, "the Programmer's Workbench gang under Rudd Canaday worked the same vein over in the BIS [Business Information Systems] area. (Tague, pg. 61)

The application of UNIX to automating the operating systems at Bell also involved automating the monitoring, measurement, help for routing and ensuring quality of calls. That was a "tall order," writes Tony Culwick, "given the standards people have come to expect...but the fact remains that the fundamental integrity of the national telecommunications network depends on more than 1000 real-time, mini-computer-based systems that are built on a version of the UNIX operating system." (from "Reach out and Touch the Unix System," by Tony Cuilwik, "Unix Review," June 1985, pg. 50. Cuilwik was the head of the Operations Systems Development Department at Bell Laborators and then director of AT&T Information Systems Laboratories in Columbus, Ohio.)

Describing the functions that UNIX makes possible, he writes, "Among the varied and wide-ranging functions these systems perform are network performance measurement, automated network testing, circuit order planning, circuit order record- keeping, automated trouble detection, automated or directed trouble repair, service quality assurance, quality control, inventory control, customer record-keeping, and customer billing -- as well as any number of other operational and administrative functions. These functions all require," Cuilwik explains, "the ability to present data to users in real-time." (Ibid.)

The object in these systems is "to guarantee a minimal acceptable human response time. This challenge has been met by tuning the underlying UNIX system." (Ibid.)

Cuilwik describes how the need for such real time applications was determined in the 1969-70 period, just when UNIX was being created. Development, he reports, "began in earnest in 1971. Early in this period," he writes, "it was determined that an operating system and environment should be provided to system designers, who would then only need to develop application- specific software." By 1974, he reports "several sites had chosen the UNIX operating system as this development environment. A few, meanwhile, had also selected it as an execution environment and were busy designing enhancements and improvements for the system." (Ibid.)

The need was also recognized for "a common operating environment between projects." (Ibid.,pg. 50-52) "Major additions" he writes, "necessary to move the timeshared UNIX system into real-time applications included interprocess communications (name pipes, messages, semaphores, and shared memory), file access (logical file system, record access system), error recovery, power fail/restart, and line and terminal disciplines. These additions were developed, integrated or donated to the common good by people developing specific systems. By 1979," he reviews, "there was an enhanced real-time UNIX system that was centrally supported, offering a collection of tools and a number of human/machine interface designs to protect system users from direct contact with UNIX primitives." (Ibid, pg. 52)

The process of the development of UNIX so it contained such a range of options involves its adoption and development by the academic research community. Early in its development, word of the UNIX operating system and its advantages spread outside of Bell Labs. (Several sources attribute this to the paper that Ritchie and Thompson presented on UNIX at the Symposium on Operating Principles at Purdue in November, 1973. See for example McKusick, "A Berkeley Odyssey" in Unix Review, January 1985, pg. 31, and Peter Ivanov, "Interview with John Lions", Unix Review, October, 1985, pg. 51, about the publication of the paper in July 1974 in the "Communications of the ACM".) The labs made the software available to academic institutions at a very small charge. For example, John Lions, a faculty member in the Department of Computer Science at the University of New South Wales, in Australia, reported that his school was able to acquire a copy of research UNIX Edition 5 for $150 ($110 Australian) in December, 1974, including tape and manuals. (See "An Interview with John Lions," in Unix Review, October, 1985, pg. 51)

UNIX was attractive to the academic Computer Science community for several reasons. John Stoneback, describing these reasons, writes:

"UNIX came into many CS departments largely because it was the only powerful interactive system that could run on the sort of hardware (PDP-11s) that universities could afford in the mid '70s. In addition, UNIX itself was very inexpensive. Since source code was provided, it was a system that could be shaped to the requirements of a particular installation. It was written in a language considerably more attractive than assembly, and it was small enough to be studied and understood by individuals." (from John Stoneback, "The Collegiate Community," Unix Review, October 1985, pg. 27)

Describing how research UNIX helped make it possible for academic computer science departments to establish and develop research in computer science, he writes:

"UNIX had another appealing virtue that many may have recognized only after the fact -- its faithfulness to the prevailing mid-'70s philosophy of software design and development. Not only was UNIX proof that real software could be built the way many said it could, but it lent credibility to a science that was struggling to establish itself as a science. Faculty could use UNIX and teach about it at the same time. In most respects, the system exemplified good computer science. It provided a clean and powerful user interface and tools that promoted and encouraged the development of software. The fact that it was written in C allowed actual code to be presented and discussed, and made it possible to lift textbook examples into the real world. Obviously, UNIX was destined to grow in the academic community. (Ibid., pg. 27)

In trying to teach his students the essentials of a good operating system, John Lions describes how he prepared a booklet containing the source files for a version of Edition 6 of research UNIX in 1976 and the following year completed a set of explanatory notes to introduce students to the code. "Writing these," he recounts, "was a real learning exercise for me. By slowly and methodically surveying the whole kernel, I came to understand things that others had overlooked."

This ability to present his students with a real example of an operating system kernel was a breakthrough. Lions writes:

Before I wrote my notes on UNIX, most people thought of operating systems as huge and inaccessible. Because I had been at Burroughs, I knew that people could get to learn a whole program if they spent some time working at it. I knew it would be possible for one person to effectively become an expert on the whole system. The Edition 6 UNIX code contained less than 10,000 lines, which positioned it nicely to become the first really accessible operating system." (Lions, pg. 52-3)

In keeping true to the UNIX community spirit of helping each other, Lions wrote a letter to Mel Ferentz, Lou Katz and others from Usenix and offered to make copies of his notes available to others. After some negotiation with Western Electric over the patent licensing, he distributed the notes titled "A Commentary on the UNIX Operating System" to others with UNIX licenses on the conditions that Western Electric had set out. (Ibid., pg. 53)

Lions describes how he helped to develop a UNIX tool "pack" which was eventually combined with tools created at Bell Labs called huff and unhuff and distributed as a standard UNIX command. He and others from his college were invited to spend periods of time at Bell Labs to work with the unix researchers there. (See for example, pg. 57)

Describing how research UNIX and its adoption at academic institutions has served to develop computer science, Doug Comer writes:

The use of UNIX as a basis for operating systems research has produced three highly desirable consequences. First, the availability of a common system allowed researchers to reproduce and verify each others' experiments. Such verification is the essence of science. Second, having a solid base of systems software made it possible for experimenters to build on the work of others and to tackle significant ideas without wasting time developing all the pieces from scratch. Such a basis is prerequisite to productive research. Third, the use of a single system as both a research vehicle and a conventional source of computing allowed researchers to move results from the laboratory to the production environment quickly. Such quick transition is mandatory of state-of-the-art computing." (Comer, pg. 44)

Not only did research UNIX serve the academic community, but the contributions of the academic community were incorporated into research UNIX. An example, is the work by Babaoglu and Porker at UC Berkeley of designing a virtual memory version of UNIX for the VAX computer which was later optimized by Bill Joy and incorporated into a release of UNIX. (Ibid.)

Academic contributions which were incorporated into research UNIX included the vi editor which was created by Bill Joy at University of California at Berkeley. Describing this phenomena Comer writes:

"Many universities contributed to UNIX. At the University of Toronto, the department acquired a 200-dt-per-inch printer/plotter and built software that used the printer to simulate a phototypesetter. At Yale University, students and computer scientists modified the UNIX shell. At Purdue University, the Electrical Engineering Department made major improvements in performance, producing a version of UNIX that supported a larger number of users. Purdue also developed one of the first UNIX computer networks. At the University of California at Berkeley, students developed a new shell and dozens of smaller utilities. By the late 1970s, when Bell Labs released Version 7 UNIX, it was clear that the system solved the computing problems of many departments, and that it incorporated many of the ideas that had arisen in universities. The end result was a strengthened system. A tide of ideas had started a new cycle, flowing from academia to an industrial laboratory, back to academia, and finally moving on to a growing number of commercial sites." (Comer, pg. 43)

In the process of using UNIX within Bell Labs, bugs would be discovered and reported to the programmers, or new applications would be created by the departments using the programs for their own tasks. The research labs would need to provide maintenance and updating of software as well as getting the bug reports to the programmer and sending out fixes.

To automate this maintenance work, Mike Lesk, one of the Bell Labs computer researchers, proposed an automated maintenance system that would make it possible to have the research computer call up the computers in the departments and automatically deliver updated software and test that it worked on the remote computer.

As part of the automated maintenance system, Lesk created a UNIX program called UUCP (UNIX to UNIX copy) which made it possible to use a phone or hard wired connection to have one computer poll another computer and deliver the software.

Describing the considerations by Bell Labs at this time, Vyssotky explains, (from Vyssotsky, pg. 64)" In 1976, there were those three versions of UNIX. The Change Control Process on all three of those versions was such that, at any moment in time, the people who were programming could tell what changes had gotten in and what changes were scheduled to go in. However, it was still a little hard for the users to tell what they were getting. It wasn't until 1978 that we had anything that I would consider to be a reasonable configuration management process of UNIX. That was the point at which we finally realized we had something which, like it or not, was a major product. So we said, `Given that it is a major product, there can be no horsing around.' We could no longer regard it as something in the underbrush. We had to regularize our arrangements. We set up a process for configuration management and we focused the thing in the direction of a coherent system." (Vyssorsky, pg. 64-68)

But he emphasizes, "Perhaps, the most important one was that UNIX was being used as the operating system basis for a bunch of operations support systems in the Bell Operating Companies and we could not afford to let those support systems go down. We put configuration management and all of the associated paraphernalia in place about 1978. (Ibid., pg. 68)

Lions says about the freezing, "Much of the development of UNIX in Bell Laboratories occurred before 1978. After Edition 7, many of the original group went off to do other things. At the same time, UNIX was becoming important within the Bell System, which gave rise to a support group whose charter was to develop a polished and stable version of UNIX. This group was less interested in innovation than in stabilizing the system. Universities have simply picked up the slack. (Lions, pg. 56)

Meanwhile, academic UNIX users had to do their own software maintenance. Lions describes how a community of academic unix users grew up who were willing to help each other.

"One very positive effect, however" writes Lions, "is that the number of universities using UNIX and the lack of any formal support forced us to band together into AUUG. (Australian unix users group -ed) The connections we have thereby made have created and cemented bonds between people in the different departments. UNIX has been a very unifying influence for computer science within Australia. This cannot be overestimated." (Ibid., pg. 57)

UUCP made such exchanges easier. It was included with the Version 7 UNIX, which was made available to the academic community outside of Bell Labs. UUCP made it possible for UNIX users to communicate with each other even when they were at spatially distant locations.

Using UUCP, the UNIX community was able to pioneer still another advance, Usenet News. "Though large institutions have been able to avail themselves of communications networks such as ARPANET, the UNIX community has made inexpensive electronic communication available to all of its members via Usenet," writes Stoneback, "A community that already had so much in common," he explains, "was strengthened and enhanced by the ability to move software easily among locations and to maintain a reasonable electronic mail system. The cost of this network has been borne at least in part by private industry, thus mitigating expenses for the users themselves. The Usenet network stands today as a clear sign that the UNIX community is solidly in place. It now includes numerous corporate members providing universities on the network with the added advantage of pooling academic researchers, industrial developers, industrial researchers and regular users. Combined with a functional, cheap electronic communication system, Usenet offers the academic community unique advantages." (Stoneback, pg. 26)

"The network," he points out, "is the direct result of a community that supports its members and in turn is nurtured by the ones it serves. The community is a reasonably democratic one, reasonably open to new ideas, resonably open to change, and reasonably generous with its benefits." (Ibid.)

Thus by 1980, a survey conducted by the Computer Science Research Network (CSNET) of academic institutions to find out what computer system they used, found that "over 90 percent of all departments were served by one or more UNIX systems." (Comer, pg. 42)

Explaining the surprising popularity that UNIX achieved despite its grassroots distribution system, McIlroy writes, "Therein lies the genius of Unix, which, without a sales force, and without the support of hardware makers, was enthusiastically adopted around the world..." ("Unix on My Mind")

"Unix," he emphasizes, "was the distilled essence of operating systems, designed solely to be useful. Not to be marketable. Not to be compatible. Not to be an appendage to a particular kind of hardware. Moreover a computer running Unix was to be useful as a computer, not just a `platform' for canned `solutions'. It was to be programmable - cumulatively programmable. The actions of program builders were to be no different in kind from the actions of users; anything a user could do a program could do too...." (Ibid.)

Describing the environment that gave birth to these advances, McIlroy writes,

"Open systems! Our systems! How well those who were there remember the pipe-festooned garret where Unix took form. The excitement of creation drew people to work there amidst the whine of the computer's cooling fans, even though almost the same computer access could be had from one's office or from home. Those raw quarters saw a procession of memorable events. The advent of software pipes precipitated a day-long orgy of one-liners...as people reveled in the power of functional composition in the large, which is even today unavailable to users of other systems. In another memorable event, the unarticulated notion of software tools, which had been bolstered by pipes, was finally brought home by the liberation of the pattern matching program grep from within the editor." (Ibid.)

He continues:

"A parade of visitors came to marvel at the system and to copy it. The makers of our 1972 model phototypesetter goggled when they saw the paper tape input replaced by wires straight from a computer. On-line PicturePhone[r] service caught attention. Synthetic speech was initiated by a memorable `Come here, Watson' event when words typed in a remote office range out clearly in the lab: `It sounds better over the telephone.' The computer's readings and misreadings became a constant crowd pleaser. There was great, if somewhat conspiratorial, excitement over a stealthy version of the C compiler that would recognize and silently bug the Unix login program and would propagate the ability through future generations of the compiler itself....No trace of the bug appeared in source code." (Ibid.)

And UUCP and then Usenet News made this the experimental research environment available for those not at Bell Labs, or with access to the experimental Arpanet. "Eager to distribute his software quickly and painlessly, Mike invented uucp, thereby begetting a whole global network," McIlroy writes. (from "A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986" by M. D. McIlroy, Computing Science Technical Report No. 139, AT&T Bell Laboratories, June 1987, pg. 3.

Summarizing the relationship between Bell Labs and the academic community in developing UNIX, Comer concludes:

"UNIX was not invented by hackers who were fooling around, nor did it take shape in a vacuum. It grew from strong academic roots and it has both nurtured and taken nourishment from academia throughout its development. The primary contributors to UNIX were highly educated mathematicians and computer scientists employed by what many people feel is the world's premier industrial research center, Bell Laboratories. Although they were knowledgeable and experienced in their own right, these developers maintained professional contacts with researchers in academia, leading to an exchange of ideas that proved beneficial for both sides. Understanding the symbiotic relationship between UNIX and the academic community means understanding the background of the system's inventors and the history of interactions between universities and Bell Laboratories." (Comer, pg. 34, 42)

Describing this fertilization, Dennis Ritchie wrote, "...Unix enjoyed an unusually long gestation period. During much of this time (say 1969-1979) the system was effectively under the control of its designers and being used by them. It took time to develop all the ideas and software, but even though the system was still being developed people were using it, both inside Bell Labs, and outside under license. Thus, we managed to keep the central ideas in hand, while accumulating a base of enthusiastic, technically competent users who contributed ideas and programs in a calm, communicative, and noncompetitive environment. Some outside contributions were substantial, for example, those from the University at Berkeley." ("Reflections on Software," August 1984, vol 27, No. 8, pg. 75)

John Lions, reviewing his experience as part of the UNIX community, concludes, "We have made a large number of contacts and exchanged a great deal of information around the world through this UNIX connection. Possibly that is the nicest thing about UNIX: it is not so much that the system itself is friendly but that the people who use it are. " (Lions, pg. 57)

It is a rare and wonderful event in the development of human society when a scientific and technological breakthrough is made which will certainly affect the future course of social contributions wer substantial, for example, those from the development and which becomes known when its midwives are still alive to tell us about it. UNIX, the product of researcher at Bell Labs, the then regulated AT&T system, and academic computer science, and a valuable invention for computer science, for computer education and for the education of the next generation of computer scientists and engineers, is such an event.

By Ronda Hauben (ronda@umcc.umich.edu)

<< , Title , Contents