Dennis Ritchie and Brian Kernighan - Rose
Download
Report
Transcript Dennis Ritchie and Brian Kernighan - Rose
Dennis Ritchie and
Brian Kernighan
Co-inventors of the C
programming language
• What’s C, exactly?
• A portable language developed by Kernighan and Ritchie in the
1970’s while they were at Bell Labs.
• “Portable” here means – The same source programs will run on
different computers. They understand “C.”
• This was a big advance over machine-specific languages.
• Today, Java and other languages also have this capability.
• Ritchie and Ken Thompson invented Unix at the same time! …
Fundamentals of Software
Development 1
Left: Brian Kernighan in the 1990’s, as the
department head, Computing Structures
Research Department at Bell Labs. Right:
Dennis Ritchie, while Head of the Systems
Software Research Department there.
Kernighan and Ritchie are still at Bell
Labs – See http://cm.belllabs.com/cm/cs/who/bwk/ and
http://www.cs.bell-labs.com/who/dmr/ .
Slide 1
Dennis Ritchie and Brian Kernighan…
and Ken Thompson
• So what’s Unix?
• Unix was the first operating system (OS) designed to be portable.
So, this idea and the portable C language idea went together.
• What’s an operating system? It is the basic software on which
applications run – applications like JavaEyes and WordGames…
– The OS talks to the hardware.
– It decides which programs to run, and when.
– It manages all the resources applications run, like memory and processing
time and disks and who’s currently printing on the printer.
• Making the same OS work on many machines – a great trick!
Fundamentals of Software
Development 1
And here’s Unix co-inventor Ken Thompson, who retired
from Lucent in 2000. For his bio, see www.belllabs.com/history/ unix/thompsonbio.html
Slide 2
Dennis Ritchie and
Brian Kernighan
Co-inventors of the C
programming language
•
For the curious! Here’s how it happened – A short history, showing how messy things-no-famous
really were. You have to read between the technical details, ok?
•
In 1969 Ken Thompson and Dennis Ritchie began a project on a "little-used PDP-7 in a corner" that
was to become Unix. The name "Unix" was intended as a pun on Multics (and was written "Unics" at
first -- UNiplexed Information and Computing System). For the first 10 years, their development was
essentially confined to Bell Labs. These initial versions were labeled "Version n" or "Nth Edition" (of
the manuals), and were for DEC's PDP-11 (16 bits) and later VAXen (32 bits). Some examples were:
V1 (1971): 1st Unix version, in assembler on a PDP-11/20. Included a file system and the commands
fork(), roff, and ed. It was used as a text processing tool for preparation of patents. Pipe(), for which
Unix is now famous, appeared first in V2!
V4 (1973): Rewritten in C, Kernighan’s brainchild, in probably the most significant event in this OS's
history: It meant Unix could be ported to a new hardware in months, and changes would be easy. The C
language was originally designed for the Unix operating system, and hence there has always been a
strong synergy between C and Unix.
V6 (1975): First version of Unix widely available outside Bell Labs (esp. in universities). This was also
the start of Unix diversity and popularity. 1.xBSD (PDP-11) was derived from this version. J. Lions
published "A commentary on the Unix Operating System" based on V6.
V7 (1979): For many, this is the "last true Unix", an "improvement over all preceding and following
Unices" [according to Bourne]. It included full K&R C, uucp, Bourne shell. V7 was ported to the VAX
as 32V. The V7 kernel was a mere 40 Kbytes!
There’s more
•
•
•
•
Fundamentals of Software
Development 1
Slide 3
Dennis Ritchie and
Brian Kernighan
Co-inventors of the C
programming language
•
How it happened – More of the short history:
•
These Vn versions were developed by the Computer Research Group (CRG) of Bell Labs. By this
time, another group, the Unix System Group (USG), was responsible for support. A third group at Bell
Labs was also involved in Unix development, the Programmer's WorkBench (PWB), to which we owe,
for example, sccs, named pipes and other important ideas. Both groups were merged into Unix System
Development Lab in 1983.
Work on Unix continued at Bell Labs in the 1980s. The V series was further developed by the CRG
(Stroustrup mentions V10 in the 2nd edition of his book on C++), but we don't seem to hear much
about this otherwise. The company now responsible for Unix (System V) is called Unix System
Laboratories (USL) and is majority-owned by AT&T.
Another variant of Unix was CB Unix (Columbus Unix) from the Columbus branch of Bell Labs,
responsible of Operations Support Systems. Its main contribution was parts of SV IPC.
Much also happened to Unix outside AT&T, especially at Berkeley (where the other major flavor comes
from). Vendors (esp. of workstations) also contributed much (e.g. Sun's NFS).
Thompson, Ritchie, and Brian Kernighan, the prime movers of Unix and C, still worked for Bell Labs
(then a part of Lucent Technologies) for decades after it all started. Among other projects, Thompson
and Ritchie were co-inventors of Plan-9, an operating system for devices and other small hardware
released by Lucent. Kernighan played a role in creating Lucent’s Inferno web-language. See the web
links to their bios.
All this history preceded Linux, of course!
•
•
•
•
•
Fundamentals of Software
Development 1
Slide 4