Information Technology Reference
In-Depth Information
Some more background on software topics
Unix and C
The origins of time-sharing operating systems can be traced back to MIT, with John McCarthy's
early prototype and Fernando Corbató's Compatible Time-Sharing System in 1961. These beginnings led to
Licklider's very ambitious project MAC and the Multiplexed Information and Computing Service - Multics -
time-sharing operating system. Bell Labs were partners in the project but became frustrated by its size,
complexity, and slow progress. When Bell Labs withdrew from the project in 1969, Thompson and Ritchie
( B.4.12 ) and some colleagues from Bell Labs decided to produce their own stripped down version of a time-
sharing operating system and to try to create a community around the new code base:
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
key-punch, but to encourage close communication. 26
They were unable to get funding from Bell Labs management to buy a new computer for their project so
they found an old and little-used PDP-7 minicomputer to begin their entirely unfunded skunkworks pro-
ject. In the course of this work they developed a hierarchical file system, the concept of treating devices
as files and the notion of processes. They also created a set of utilities giving users the ability to print,
copy, delete, and edit files plus a simple command interpreter or shell . The Unix operating system then
consisted of a set of utilities under the control of a small and efficient operating system kernel . The ker-
nel provided services to start and stop programs, handle the file system, and schedule access to resources
and devices avoiding conflicts. By promising to create a system specifically designed for editing and for-
matting text, in 1970 they finally managed to get funding to buy a modern PDP-11 computer. It was also
in 1970 that their colleague Brian Kernighan suggested the name Unix, as a play on the name Multics.
In 1972 Unix pipes were introduced that enabled small utility programs to be combined to create more
powerful programs. Using such pipes to create a powerful system utility rather than developing a sin-
gle monolithic program with the same combined functionality became known as the Unix philosophy -
“the idea that the power of a system comes more from the relationships among programs than from the
programs themselves.” 27 Every program in Unix had originally been written in assembly language but
Thompson had developed a definition and compiler for a new language for the PDP-7 that he called B. The
language was a stripped down and modified version of the BCPL language developed in Cambridge, U.K.,
by Martin Richards. With the arrival of the more powerful PDP-11 in 1970, Ritchie took Thompson's B
language and developed the C programming language to take advantage
of the new machine's byte addressability and other features. By 1973 the
new language was powerful enough for much of the Unix kernel to be
rewritten in C. In 1977, with further changes to the language, Ritchie
and Steven Johnson were able to produce a portable version of the Unix
operating system. Johnson's Portable C Compiler then allowed both C
and Unix to spread to other platforms. In 1978 Kernighan and Ritchie
published the first edition of The C Programming Language , which served
for many years as the informal specification of the standard ( Fig. 4.13 ).
Thompson and Ritchie's Unix operating system has been enor-
mously influential. Because AT&T was a regulated telephone monop-
oly it was barred from doing significant commercial developments in
B.4.12. Ken Thompson and Dennis
Ritchie (1941-2011), the developers of
C programming language and the Unix
operating system.
Search WWH ::




Custom Search