| |
Unix Programming - Origins and History of Unix, 1969-1995 - Exodus: 1971–1980
Exodus: 1971–1980
The original Unix operating system was written in assembler, and
the applications in a mix of assembler and an interpreted language
called B, which had the virtue that it was small enough to run on the
PDP-7. But B
was not powerful enough for systems programming, so Dennis Ritchie
added data types and structures to it. The resulting C
language evolved
from B beginning in 1971; in 1973 Thompson and Ritchie finally
succeeded in rewriting Unix in their new language. This was quite an
audacious move; at the time, system programming was done in assembler
in order to extract maximum performance from the hardware, and the
very concept of a portable operating system was barely a gleam in
anyone's eye. As late as 1979, Ritchie could write: “It seems certain that
much of the success of Unix follows from the readability,
modifiability, and portability of its software that in turn follows
from its expression in high-level languages”, in the knowledge
that this was a point that still needed making.
A 1974 paper in Communications of the ACM
[Ritchie-Thompson] gave Unix its first public
exposure. In that paper, its authors described the unprecedentedly
simple design of Unix, and reported over 600 Unix installations. All
were on machines underpowered even by the standards of that day, but
(as Ritchie and Thompson wrote) “constraint has encouraged not
only economy, but also a certain elegance of design”.
After the CACM paper, research labs and universities all over
the world clamored for the chance to try out Unix themselves. Under a
1958 consent decree in settlement of an antitrust case, AT&T
(the parent organization of Bell Labs) had
been forbidden from entering the computer business. Unix could not,
therefore, be turned into a product; indeed, under the terms of
the consent decree, Bell Labs was required to license its nontelephone
technology to anyone who asked. Ken
Thompson
quietly began answering requests by shipping out tapes and disk packs
— each, according to legend, with a note signed “love,
ken”.
This was years before personal computers. Not only was the
hardware needed to run Unix too expensive to be within an individual's
reach, but nobody imagined that would change in the foreseeable
future. So Unix machines were only available by the grace of big
organizations with big budgets: corporations, universities,
government agencies. But use of these minicomputers was less regulated
than the even-bigger mainframes, and Unix development rapidly took on
a countercultural air. It was the early 1970s; the pioneering Unix
programmers were shaggy hippies and hippie-wannabes. They delighted
in playing with an operating system that not only offered them
fascinating challenges at the leading edge of computer science, but also
subverted all the technical assumptions and business practices that
went with Big Computing. Card punches, COBOL, business suits, and
batch IBM mainframes were
the despised old wave; Unix
hackers reveled in
the sense that they were simultaneously building the future and
flipping a finger at the system.
The excitement of those days is captured in this quote from
Douglas Comer: “Many universities contributed to UNIX. At the
University of Toronto, the department acquired a 200-dot-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].
The first Unix of which it can be said that essentially all of
it would be recognizable to a modern Unix programmer was the Version 7
release in 1979.[15]
The first Unix user group had formed the previous year. By this time
Unix was in use for operations support all through the Bell System
[Hauben], and had spread to universities as far away
as Australia, where John Lions's 1976 notes [Lions] on
the Version 6 source code became the first serious documentation of
the Unix kernel internals. Many senior Unix hackers still treasure a
copy.
|
The Lions book was a samizdat publishing sensation. Because
of copyright infringement or some such it couldn't be published in the
U.S., so copies of copies seeped everywhere. I still have my copy,
which was at least 6th generation. Back then you couldn't be a kernel
hacker without a Lions.
|
|
| --
Ken Arnold
|
|
The beginnings of a Unix industry were coalescing as well. The
first Unix company (the Santa Cruz Operation, SCO) began operations in
1978, and the first commercial C compiler (Whitesmiths) sold that same
year. By 1980 an obscure software company in Seattle was also getting
into the Unix game, shipping a port of the
AT&T version for microcomputers called XENIX.
But Microsoft's
affection for Unix as a product was not to last very long (though Unix
would continue to be used for most internal development work at the
company until after 1990).
[an error occurred while processing this directive]
|
|