Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

29

Click here to load reader

description

Mr. T. M. Vijayaraman, Ex-CTO, Persistent Systems talks about Life and Work of Ken Thompson and Dennis Ritchie.

Transcript of Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

Page 1: 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

Page 3: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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/

Page 4: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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/

Page 5: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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).

Page 6: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 7: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 8: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 9: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 10: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 11: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 12: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 13: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 14: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 15: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 16: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 17: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 18: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 19: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 20: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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)

Page 21: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 22: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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)

Page 23: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 24: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 25: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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.

Page 26: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 27: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 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

Page 28: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 2012 Persistent Systems Ltd 28

Video: Dennis Ritchie - Write in C

http://www.youtube.com/watch?v=H4YRPdRXKFs

Duration: 4 mins

Page 29: Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk

© 2012 Persistent Systems Ltd 29 29

© 2012 Persistent Systems Ltd

Thank You

Persistent Systems Limited

www.persistentsys.com