On the Early History of Unix and Unix Tools(pt3of5)draft

On the Early History of Unix and Unix Tools(pt3of5)draft

Post by Ronda Haub » Thu, 11 Jan 1996 04:00:00



                 On the Early History and Impact of Unix
              Tools to Build the Tools for a New Millenium
                                by Ronda Hauben
                                rh...@columbia.edu

                        (Part 3 of 5)

Open Source Code and the Early Development of Unix

     Since the Unix programming environment was used by the
researchers themselves, they came to learn its weaknesses and
problems and were encouraged to make needed improvements.
Contributing to the value of Unix during its early
development, was the fact that the source code was open and
available. It could be examined, improved, and customized.
In an article "Can UNIX Survive Secret Source Code?", Mike Lesk,
then a Bell Labs researcher, observes how only when computer
source code is open and can be modified, will it be developed and
vibrant.  He gives the example of COMIT, the string processing
language. At one point, its owners decided there would no longer
be any modifications in the code, and so only distributed it in
binary form. "You haven't heard of COMIT since," he notes. He
describes how the same fate befell TRAC, a language close to
FORTH. "Software is more attractive to hackers," Lesk maintains,
"if it can be changed. As more and more UNIX suppliers restrict
access to source code, fewer and fewer advanced research shops
will be attracted to UNIX."(59)

     Commenting on the importance of open source code in the
early years of Unix development at Bell Labs, Thompson and
Ritchie write, "Because all source programs were always available
and easily modified on-line we were willing to revise and rewrite
the system and its software when new ideas were invented,
discovered, or suggested by others."(60)

    Not only was the source code open and available to the Bell
Labs researchers developing the system, but the Labs also made
the sources available on tape at the request of academic
colleagues. Robert Fabry of the University of California at
Berkeley was able to get a tape of Version 4 Unix and that began
the long and important role played by faculty and students at the
University of California at Berkeley in the development of
Unix.(61)

     Source code tapes were made available to interested
researchers in the academic and computer science community for a
nominal fee. For example, when John Lions, a Professor of
Computer Science at the University of New South Wales in
Australia read a paper published by Thompson and Ritchie in mid
1974, he wrote them for a copy of the Unix tape. After signing a
license agreement with the Labs, and a token payment of $110
Australian ($150 U.S.), the Unix Edition 5 tape and manuals
arrived, "as a late Christmas present," in December, 1974,
remembers John Lions.(62)

     While Bell Labs made the tape and manuals available,  
they did so with no support. Berkley Tague explains the
release was "`caveat  emptor' -  i.e. dollars on the table up
front and no support promised."

     Henry Spencer, a Unix pioneer from the University of
Toronto in Canada, and one of the programmers of C News,
describes how early users of Unix in the academic community
had to provide their own support. He explains:

    "It was very common at the time. This was in the
    days when UNIX was still treated by the Bell System
    as, `Oh, just something we happen to do for our own
    internal use. You can have a copy if you want, but if
    you got problems, don't bother us.' And the result
    was if you wanted UNIX support you did it yourself
    or it didn't happen."(63)

    Lions agrees, "We needed help," he notes, "but we
couldn't get any from outside sources so we ended up
generating our own expertise."(64) Not only did those working
on Unix implementation at the University of New South Wales
have access to the code, but Lions explains how Ian Johnstone,
the tutor working with him in his Operating Systems class,
suggested making some of the code for the Unix kernel available
to the students in his class. "I think it was in 1975,"
remembers Lions, that Ian Johnstone asked, "`Why don't we run
off a few of the source files for the kernel and ask the students
to take a look at them? Then we can ask them some questions;
maybe it will be interesting'."(65) Lions took Johnstone's
suggestion and made some of the Unix source code available to his
class, but his students complained. They felt they needed to see
the source code for the whole kernel in order to make sense out
of any part.

     Taking their suggestion, Lions decided to make a large part of the
source code available to his class. "The following year," he recounts, "I
prepared a booklet containing the source files for a version of Edition 6
UNIX that could then run on a PDP-11/40 system." Lions followed the book
of source code with a book of "explanatory notes that was intended to
introduce students to the code."(66) Lions explains that working on his
book, "`A Commentary on the UNIX Operating System' was a real learning
experience. By slowly and methodically surveying the whole kernel he
notes, "I came to understand things that others had overlooked."(67)

     When he read the manual and wasn't quite certain about his
interpretation, Lions would read the code. Through this process,
he was able to determine that the manual was "really quite
accurate in its description of what a program actually does. In
the Thompson/Ritchie era," he observes, "words were carefully
chosen."(68) Lions writes, "In our opinion, it is highly
beneficial for students to have the opportunity to study a
working operating system in all its aspects."(69)

     "Moreover," he adds, "it is undoubtedly good for students majoring
in computer science to be confronted at least once in their careers with
the task of reading and understanding a program of major dimensions."(70)
Lions found that, "On the whole the authors of UNIX, Ken Thompson and
Dennis Ritchie, have created a program of great strength, integrity and
effectiveness," which he urged his students to "admire and seek to
emulate."(71) Not only did students in Lions' class read and study the
Unix source code and Lions' Commentary on the source code, but Lions
describes how he sent more than 200 copies of his book to Bell
Laboratories. Eventually, the Labs took over distribution of the book.

     Tague relates how Lions' book of commentary and the
Unix source code were used at AT&T "as part of the documentation
package for those who wanted to understand or modify the UNIX(r)
source code that the USG [Unix Support Group] shipped."(72)
Even after Unix V6 had been replaced by Unix V7, Tague explains
that Lions' Commentary continued to be useful as an introduction

to Unix. Tague writes:

     "It outlined the conceptual architecture, very clearly in
     the short form of the system before it had accreted all the
     minor changes and feature additions that disguised the  
     original clarity of its structure. All new people were given
     a copy when they joined the USG. And I suspect most
     development groups did the same."(73)

     Pioneers like Henry Spencer describe how important it was to
those in the Unix community to have the source code. He notes how
having the sources made it possible to identify and fix the bugs
that they discovered, "There is something the UNIX community has
always been fairly strong on," he explained during an interview,
"admitting things you know don't work about the software." Even
in the late 1970's and early 1980's, remembers Spencer,
"practically every UNIX site had complete sources."(74)

     One of the early functions of Usenet, the early online community
of Unix systems begun in 1979, according to Spencer, was to provide
cooperative software support for the Unix community. He elaborates:

     Well, for one thing, Usenet predated a lot of company bbs's
     and the like. It was basically a cheap way to hear about
     things fast and this was at a time when practically every
     UNIX site had complete sources and so a bug report often
     came with a fix. It was a way of finding out what people had
     discovered and what fixes they'd worked out for it. Quickly
     and easily. And for that matter, if you ran into something
     that you couldn't solve yourself, putting out an inquiry to
     a bunch of fairly bright people who were fairly familiar
     with the code, often got a response, `O Yeah. We solved that
     one' or `You're right. There's a bug. Here's how to fix it'
     or sympathy even if no one had a fix for it."(75)

     Another Unix pioneer, Dick Haight, corroborates the
important role open source code played for those in the Unix
community:

     "That by the way, was one of the great things about UNIX in
     the early days: people actually shared each other's stuff.
     It's too bad that so many sites now have purposefully turned
     off the read privileges in order to keep their ideas from
     being stolen. Not only did we learn a lot in the old days
     from sharing material, but we also never had to worry about
     how things really worked because we always could go read the
     source. That's still the only thing that matters when the
     going gets tough."(76)

     Unix was continually used and improved by its creators. A growing
community of programmers, system administrators, and users, both at
Bell Labs and at academic and research sites outside the Labs, also
used, developed and debugged the code. The fact that the source code
was open and available made this possible. The result was the
creation of Unix as a powerful and flexible programming environment.

     Though Unix was primarily designed to "help build research  
software," Bell Labs software developers soon found that, "what
worked well in the programming laboratory also worked well on
modest projects to develop minicomputer-based systems in support
of telephone company operations."(77)

                        (to be continued)
----------------------------
      This draft for comment is Chapter 9 of the draft netbook
            Netizens: On the History and Impact of the Net
               http://www.columbia.edu/~hauben/netbook
                Notes to the draft can be found there.