Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Click here to load reader
-
Upload
persistent-systems-ltd -
Category
Technology
-
view
1.787 -
download
0
description
Transcript of Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
www.persistentsys.com
© 2012 Persistent Systems Ltd
Life and Work of
Ritchie & Thompson
July 27, 2013
© 2012 Persistent Systems Ltd 2
ACM A. M. Turing Award
Dennis MacAlistair Ritchie and
Kenneth Lane Thompson
United States – 1983
Citation:
For their development of generic
operating systems theory and
specifically for the implementation of
the UNIX
© 2012 Persistent Systems Ltd 3
Denis Ritchie (Sept 9, 1941 – Oct 12, 2011)
Born: 9 Sep1941, New York, USA
Education: Ph. D. in Physics and Applied Mathematics, Harvard,
1967
Professional Career: Joined Bell Laboratories as Member Technical Staff after
graduation
Became head of the Bell Laboratories Computing Techniques Research Department in 1990
Retired as head of Lucent Technologies' System Software Research Department in 2007
Died on 12 October, 2011
Home Page: http://cm.bell-labs.com/who/dmr/
© 2012 Persistent Systems Ltd 4
Ken Thompson
Born: 4 Feb1943, New Orleans, USA
Education: EECS Bachelor of Science (1965) and master's degree
(1966), Electrical Engineering and Computer Science, University of California, Berkeley
Professional Career: Joined Bell Laboratories as Member Technical Staff after
graduation
Retired from Bell Labs in 2000 and became a Fellow at Entrisphere Inc. until 2006
Currently at Google Inc. as a Distinguished Engineer since 2006
Home Page: http://www.cs.bell-labs.com/who/ken/
© 2012 Persistent Systems Ltd 5
Ritchie and Thompson – Joint Awards/Honors
ACM Programming Systems and Languages Paper
Award (1975)
ACM A. M. Turing Award (1983)
ACM Software System Award (1983);
IEEE Emmanuel R. Piore Award (1983)
IEEE Richard W. Hamming Medal (1990);
IEEE Computer Pioneer Award (1994);
Computer History Museum Fellow Award (1997);
1998 National Medal of Technology from President Bill
Clinton; ACM SIGOPS Hall of Fame Award (2005).
Japan Prize for Information and Communications (2011).
© 2012 Persistent Systems Ltd 6
Video Introduction of Dennis Ritchie and Ken Thompson at the 27th
Japan Prize for Information and Communications
http://www.youtube.com/watch?v=IjvjqAVkvYo
Duration: 8 mins
© 2012 Persistent Systems Ltd 7
Early Unix History – A Chronology
1940 - 1968
1941 Dennis Ritchie born
1943 Ken Thompson is born.
1963 Project MAC (Multiple Access Computers) is organized at MIT to do
research on interactive computing and time-sharing systems.
1965 AT&T, GE, and Project MAC at IBM join together to develop the
time-sharing system MULTICS (Multiplexed Information and Computing
Service).
1966 Ken Thompson finishes studies at UCB and joins technical staff at
AT&T Bell Labs to work on MULTICS.
1968 Dennis Ritchie completes work on his doctorate at Harvard and
joins Bell Labs to work on MULTICS project.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 8
Early Unix History– A Chronology
1969
1969
AT&T Bell Labs drops out of MULTICS project. A system which was supposed to support
1000 on line users can barely handle three. Out of the ashes grows the most influential
operating system in history.
Thompson gets an idea for a new type of file system and hashes out his ideas with Ritchie
and Rudd Canaday.
Thompson writes first version of UNICS for PDP-7 in one month while wife is on vacation.
He allocates one week each to the operating system functions: the kernel, the shell, the
editor, and the assembler. He does this on a machine with 4K of 18 bit words. UNICS is pun
on MULTICS and stands for Uniplexed Information and Computing Services. Name is
changed to UNIX which is not an acronym. This version is in assembly language.
Thompson develops the interpretive language B based upon BCPL. Ritchie improved on "B"
and called it "C"
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 9
Early Unix History– A Chronology
1970-1973
1970
DEC begins shipping PDP-11 and revolutionizes the computer industry by selling 250,000
systems.
Bell Labs gets a PDP-11 to do text processing for the legal department. System is
developed and implemented in UNIX. The standard DEC OS is never installed.
1971 The First Edition of UNIX manual is written.
1972 UNIX OS is rewritten in C which opened the door for porting.
1973
First UNIX development support group is formed in Bell Labs.
Thompson delivers first UNIX paper at the ACM Symposium on Operating Systems at the
Thomas J. Watson Research Center in Yorktown Heights, NY.
Within six months, the number of UNIX sites triples from 16 to 48.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 10
Early Unix History– A Chronology
1974-75
1974
"The UNIX Time-Sharing System" is published in CACM by Ken Thompson and Dennis
Ritchie. It is a revision of the 1973 paper.
University of California at Berkeley (UCB) gets Version 4 of UNIX.
Keith Standiford converts UNIX to PDP 11/45.
Berkeley begins making major enhancements to UNIX and sets the stage for becoming a
major distribution center for their version of UNIX.
The Elements of Programming Style by Kernighan and Plauger is published.
1975
Thompson begins one year sabbatical at Berkeley.
AT&T officially begins licensing UNIX to universities.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 11
Early Unix History– A Chronology
1976-77
1976
Software Tools by Kernighan and Plauger is published.
Boggs and Metcalfe invent Ethernet at Xerox in Palo Alto.
1977
UK UNIX Users Group is formed as Special Interest Group (SIG) in DECUS UK.
INTERACTIVE Systems develops the first commercial version of UNIX (IS/1) on a
PDP-11.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 12
Early Unix History– A Chronology
1978
Bill Joy produces first Berkeley Software Distribution (BSD) of UNIX.
UNIX ported to an Interdata 8/32, the first non-DEC computer to run UNIX after
nearly ten years of running only on DEC equipment.
UNIX is ported to a DEC VAX, but not by Thompson and Ritchie, since they had
become disenchanted by DEC and its unwillingness to support UNIX. DEC's
refusal to support UNIX must be one of the all time great blunders of the
computer industry.
The C Programming Language by Kernighan and Ritchie is published.
P.J. Plauger forms Whitesmiths Ltd and writes the first commercial C compiler.
The USENIX UNIX users group is formed.
Doug and Larry Michels start Santa Cruz Operations, Inc. (SCO) to sell UNIX on
a PC. By 1992, they grow to $175 million in revenues.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 13
Early Unix History– A Chronology
1979-80
1979
Seventh Edition UNIX PROGRAMMERS MANUAL (UNIX Version 7) is published. It is the
first edition without Thompson's or Ritchie's names. It is titled "UNIX (with a TM sign) Time-
Sharing System." Bell Labs starts to protect its assets.
Microsoft licenses UNIX from AT&T and announces XENIX, which is soon overshadowed by
MS-DOS.
1980
BSD UNIX finds its way back into Bell Labs as a new improved version.
Berkeley lands large DARPA contract and forms Computer Systems Research Group
(CSRG).
SCO becomes a distributor for Microsoft XENIX and licenses the name XENIX because
they sold their trade name DYNIX to Sequent.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 14
Early Unix History– A Chronology
1981-83
1981
The IBM PC is released running Microsoft DOS; XENIX is pushed into the background.
Amdahl develops the first mainframe version of UNIX (UTS).
1982
AT&T announces official support for UNIX and its first commercial release: UNIX System III.
Bill Joy, the inspiration behind BSD, leaves Berkeley to co-found Sun Microsystems. SUN
gets its name from the Stanford University Network (SUN) board. Sun workstation is based
on the Motorola 68000 chip running SunOS based on 4.2BSD. It includes an optional local
area network based on Ethernet.
HP announces support for UNIX (HP/UX) on its 9000 workstations.
DEC releases ULTRIX.
IBM releases CPIX.
1983 Thompson and Ritchie receive ACM Turing award for their work on UNIX.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 15
Early Unix History– A Chronology
1981-83
1981
The IBM PC is released running Microsoft DOS; XENIX is pushed into the background.
Amdahl develops the first mainframe version of UNIX (UTS).
1982
AT&T announces official support for UNIX and its first commercial release: UNIX System III.
Bill Joy, the inspiration behind BSD, leaves Berkeley to co-found Sun Microsystems. SUN
gets its name from the Stanford University Network (SUN) board. Sun workstation is based
on the Motorola 68000 chip running SunOS based on 4.2BSD. It includes an optional local
area network based on Ethernet.
HP announces support for UNIX (HP/UX) on its 9000 workstations.
DEC releases ULTRIX.
IBM releases CPIX.
1983 Thompson and Ritchie receive ACM Turing award for their work on UNIX.
Adapted from http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm
© 2012 Persistent Systems Ltd 16
Video: Ken Thompson and Dennis Ritchie Explain UNIX (Bell Labs)
http://www.youtube.com/watch?v=JoVQTPbD6UY
Duration: 3 mins
© 2012 Persistent Systems Ltd 17
The UNIX-11 Time-Sharing System
(CACM Paper, July 1974)
http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf
General-purpose timesharing operating system DEC PDP-11 machines
Operational from Feb 1971, the System used by the Patent Division at
Murray Hill to prepare Patent Applications
Hardware (PDP 11/45)
16-bit word (8-bit byte)
144Kb of core memory – Unix occupies 42Kb
1 Mb fixed-head disk used for file system storage and swapping
4 Moving-head disks – removable 40Mb disk packs
Paper tape reader-punch, Lineprinter
Console teletype and communication interfaces for character terminals
© 2012 Persistent Systems Ltd 18
The UNIX-11 Time-Sharing System (CACM Paper)
In addition to the system proper
C Compiler
Text Editor
Linkloader
Symbolic Debugger
BASIC Interpreter
Fortran Compiler
SNOBOL Interpreter
Top-down Compiler Compiler (TMG)
Bottom up Compiler Compiler (YACC)
Macro processor
© 2012 Persistent Systems Ltd 19
The UNIX-11 Time-Sharing System (CACM Paper)
File System - Rooted
Ordinary Files
Directories
Special Files
Mountable File Systems
Access Control
Read, write, and execute permissions for the Owner and Other
users
Set-uid bit
Notion of a Super User
© 2012 Persistent Systems Ltd 20
The UNIX-11 Time-Sharing System (CACM Paper)
File System – I/O calls
Simple – no distinction between “random” and sequential I/O
Filep=open(name, flag)
n=read(filep,buffer,count)
n=write(filep,buffer,count)
location=seek(filep,base,offset)
© 2012 Persistent Systems Ltd 21
The UNIX-11 Time-Sharing System (CACM Paper)
File System – Implementation Directory contains filename and pointer to the file i-number
i-number is an index to the system table i-list
The entry (i-node) contains the file description: • Its owner
• Its protection bits
• The physical disk address for its contents
• Its size
• Time of last modification
• The number of links to the file
• Bits for directory, special file etc.
Common Buffer Pool
© 2012 Persistent Systems Ltd 22
The UNIX-11 Time-Sharing System (CACM Paper)
Processes and Images
processid = fork()
Splits into two independent processes
Program can test the return value to identify child or parent
execute (file, arg1, arg2, …., argn)
processid = wait()
Exit(status)
© 2012 Persistent Systems Ltd 23
The UNIX-11 Time-Sharing System (CACM Paper)
Processes, Images, Pipes
processid = fork()
Splits into two independent processes
Program can test the return value to identify child or parent
execute (file, arg1, arg2, …., argn)
processid = wait()
Exit(status)
Filep = pipe() interprocess channel - filedescriptor
© 2012 Persistent Systems Ltd 24
The UNIX-11 Time-Sharing System (CACM Paper)
The Shell
Command arg1, arg2, … , argn)
Standard I/O and file redirection
stdin, stdout, stderr (file descriptors 0, 1 and 2)
ed <script
Filters e.g. ls | pr -2 | opr
processid = wait()
Multitasking
Shell itself as a command
Init
© 2012 Persistent Systems Ltd 25
The UNIX-11 Time-Sharing System (CACM Paper)
Perspective
Success of UNIX attributed to the fact that it was not designed
to meet any predefined objective
Three considerations
A system to make it easy to write, test, and run programs
Made under sever size constraint – economy but also elegance
The system maintains itself – all source code etc. available to early
users.
© 2012 Persistent Systems Ltd 26
Unix Critcs and Detractors
The UNIX-Hater’s Handbook
Edited by
Simson Garfinkel, Daniel Weise,and Steven Strassmann
http://web.mit.edu/~simsong/www/ugh.pdf
© 2012 Persistent Systems Ltd 27
Portable OS and Standard OS
Networking and Internet
Itself not “open source” or “public domain” -
yet laid the seed GNU – Richard Stallman
Minix – Tanenbaum
Linux – Linus Trovalds
Android and other mobile operating systems
Impacts
© 2012 Persistent Systems Ltd 28
Video: Dennis Ritchie - Write in C
http://www.youtube.com/watch?v=H4YRPdRXKFs
Duration: 4 mins
© 2012 Persistent Systems Ltd 29 29
© 2012 Persistent Systems Ltd
Thank You
Persistent Systems Limited
www.persistentsys.com