| That brings
me to Dennis Ritchie. Our collaboration has been a thing of beauty. In the ten
years that we have worked together, I can recall only one case of miscoordination
of work. On that occasion,
I discovered that we both had written the same 20-line assembly language program.
I compared the sources
and was astounded to find that they matched character-for-character. The result
of our work together has been far greater than the work that we each contributed.
- Ken Thompson, Reflections on Trusting
Trust, 1994. |
The history of Unix
is the story of a unique group of individuals in a unique environment,
driven by scientific research priorities.
As electronics continued to rapidly improve through the late 1950's, it became
apparent that computers would soon be able to time-share by switching back
and forth quickly between multiple users. Fernando Corbato at the MIT Computation
Center led a team that developed one of the first multi-user operating systems
called the Compatible
Time-Sharing System (CTSS), which was highly influential.
In the mid-1960's, CTSS was used to help build a next generation multi-user
operating
system called the Multiplexed Information and Computing System (MULTICS),
originally started as a joint research effort by AT&T
Bell Labs, General
Electric, and MIT.
However, Bell Labs pulled out of the project in 1969 because of the high maintenance
costs of the GE-645 computer and lack of immediately useful results.
The
Bell Labs staff involved with MULTICS, including Ken
Thompson, Dennis
Ritchie, M. D. Mcllroy, and Joe Ossanna, saw great value in the communal
environment enabled by a multi-user computer system, and started looking for
a way to preserve the capability. They put in a number of proposals to buy a
new computer of their own, including a DEC PDP-10, SDS Sigma 7, and KI-10, but
all were too expensive and
not approved.
Also in 1969, based on their experience with CTSS and the inefficient but
functional MULTICS, Thompson led the design of a new operating system in a
series of sessions with Ritchie and Rudd Canaday. Thompson wrote a simulation
of the file system
and the paging system on MULTICS to verify its operation.
During
the same period, Thompson wrote a game on MULTICS called Space Travel that enabled
a pilot to fly a ship around a simulation of the solar system and land on the
planets and moons. When their access to MULTICS wound down, Thompson translated
the game into FORTRAN on the GECOS operating system on a GE-635 computer. However,
the display movement was jerky, and access to GECOS cost $75 an hour, so eventually
Thompson found a little-used PDP-7 computer with a good display processor at
Bell Labs. Thompson and Ritchie then ported Space Travel to the PDP-7's assembly
language using a cross-assembler running on GECOS, and then transferred the program
to the PDP-7
using punched paper tapes.
After learning how to program the PDP-7, Thompson, Ritchie, Ossanna, and Canaday
began to program the operating system that was designed earlier. After writing
the file system and a set of basic utilities, they wrote a PDP-7 assembler
so they could
program directly on the PDP. By 1970, the basic elements of the operating system
were in place, but since it could only support one user, Brian Kernighan jokingly
named it the Uniplexed Information and Computing System (UNICS) as a pun on MULTICS.
When multiprocessing functionality was added a short time later, the name was
changed to "Unix", which is now just a name and not an acronym for
anything.
Also in 1970, the Bell Labs team put in a scaled down request for $65K to
buy one of
the new line of DEC
PDP-11 computers, the first of what would become an influential line of powerful
minicomputers over the next several years, justified with a plan to develop some
sort of useful text-processing system. They obtained the PDP-11 in late summer,
and began transferring Unix from the PDP-7. The first PDP-11 version used 16
KB of memory for the operating system,
and provided 8 KB of memory for user programs.
In the spring of 1971, the interest in Unix began to grow, so instead of writing
a new text-processing system as originally proposed, Thompson and Ritchie translated
the existing "roff" text formatter from the PDP-7 to the PDP-11 and
made it available to the Patent department on their new Unix system. This practical
success helped convince Bell Labs of the value of Unix, and shortly thereafter
they bought the team one of the first, powerful PDP-11/45 minicomputers to
continue
their development. A series of progressively better "editions" of Unix
were then released.
In 1975, the sixth version of Unix was released, for the first time made available
outside AT&T to educational and research institutions. Because US Federal
Law prevented Bell Labs from selling products due to its status as a unique,
monopoly institution, it was also made available at no cost. In the best traditions
of
the free software movement, the
spread of Unix to sites across the research community seeded the development
of many improvements by local programmers, some of which were incorporated in
the seventh
version released in 1979. This spread of Unix through the research community
also laid the technological
foundation for the later establishment of the NSFNET, CSNET,
and EUnet. The history of Unix is inextricably
intertwined with the history of the Internet -- neither would have had the growth
it did without the help of the other.