SlideShare una empresa de Scribd logo
1 de 35
DR. BUTLER LAMPSON
1992 TURING AWARD
WINNER
Neeran M. Karnik
Product Architect, BMC Software
Cluedo: Whodunit?!
The Butler!
… in the Laboratory…
… with a Screwdriver!
Dr. Butler Lampson
1992 ACM Turing Award
Agenda
   Systems Research
   Butler Lampson‟s life and work
   Hints…
   Q&A
Systems Research
Systems Research
   Designing large and/or complex computing systems
       computers (from tablets to supercomputers)
       networks
       printers
       etc.

   Includes the software:
       operating systems
       programming languages
       networking stacks
       file systems
       distributed systems
       etc.
Systems Research…
   How it‟s different from say, algorithm design:
       external interface (requirement) is less precise, more complex, subject
        to change…
       more internal structure, thus more internal interfaces
       module-level design choices have wider implications
       measure of success is unclear

   No such thing as a „best‟ design
       more important to avoid making terrible choices

   Usually, the physical system doesn‟t yet exist!
       simultaneous development of the hardware and software
       how do you design and test the software?
       how do you design and test the hardware?
Dr. Butler Lampson
His life and work
The 1992 Turing Award


CITATION:
   For contributions to the development of distributed,
    personal computing environments and the technology for
    their implementation: workstations, networks, operating
    systems, programming systems, displays, security and
    document publishing.
A 1-page Biography
   Born in 1943, in Washington, DC
   Education:
       B.A. in Physics at Harvard, 1964
       Ph.D. in EECS at Univ. of California at Berkeley, 1967, aged 23!
   Work:
       Xerox PARC, 1971-1984
       DEC SRC, 1984-1995
       Microsoft Research, 1995-
   Systems:
       Alto (workstation)
       Bravo (WYSIWYG editor)
       Cal (timesharing system)
       Dover (laser printer)
   Awards:
       1992 ACM Turing Award
       ACM Software Systems Award
       IEEE Computer Pioneer Award
       IEEE von Neumann Award
       3 papers in ACM SIGOPS Hall of Fame!
The Xerox Alto
   The first personal computer, built in 1973 at
    PARC
       First computer to use the desktop metaphor
       First computer with a mouse-driven GUI
   Conceived in a 1972 memo written by
    Lampson
   Design led by Charles Thacker (2009
    Turing)
       Lampson contributed to the design
       Wrote the OS!

   Lampson et al. won the 1984 ACM
    Software System Award and the 2004 NAE
    Draper prize for the Alto

   Later work: led the design of Dorado and
The Bravo editor
   First WYSIWYG editor
   Shipped with the Xerox
    Alto
   Developed by Lampson,
    Simonyi et al. in 1974



   Led to the development
    of
    Microsoft Word
The Xerox 9700 and Dover Laser
Printers
   First laser printer, at PARC, 1969, led by Gary
    Starkweather
     Lampson   co-designed the electronics and
      software
     prototype for the Xerox 9700



   Dover Laser Printer
     later
          version, in 1976
     much cheaper

     Lampson designed the electronics
SDS 940
   First general-purpose time-sharing system,
    with char-by-char interaction
   Project Genie at Berkeley
     Lampson   joined as graduate
      student
     wrote parts of the OS
     created several programming
      languages!
       Cal:
           interactive language for
        numerical computation
       QSPL: system programming
Other Research
   Two-phase commit protocol for distributed
    transactions (with Sturgis)

   Cal time-sharing system for CDC 6400 (at Berkeley)
       pioneered shadow pages, redo logs
       capability-based system: not a good basis for long-term
        security

   Programming Languages:
       Mesa and SPL for systems programming
           Mesa‟s process mechanism  modern thread systems
       Cedar: combining the virtues of Mesa and Lisp
       Euclid: first language designed to enable program
        verification
       Modula 2+: extends Wirth‟s Modula-2
But wait, there‟s more!
   Security
       Access Matrix model, unifying capabilities and ACLs
       Information Flow Control
       Theory of Principals “speaking for” other principals
       Microsoft Palladium (TCB)
       Scrubbing disk storage
       How economic factors (not technology) inhibit security

   Networking
       co-inventor on Xerox patent for Ethernet!
       switched LAN at DEC SRC

   Formal specification and proof
       TCP connection establishment (at-most-once messaging)
       Leslie Lamport‟s Paxos protocol
Phew!
Hints for Computer System
Design
The Hints paper...
   Presented at the 9th SOSP,
    appeared in SIGOPS OSR October
    1983, reprinted in IEEE Software Jan
    1984
   Summarizes the learnings from years of
    systems research and implementation

   Still influential after all these years... e.g.:
       Werner Vogels, CTO, Amazon

       Butler's paper shows a great mix of
        fundamentals and best practices from the
        early days of large scale system design.
        Almost all of his advice has withstood the
        test of time and as such they are even
        more important now than in 1983
           from a July 2012 blog post
How it‟s organized
   “Hints”:
       not laws
       not foolproof recipes
       not consistent
       not always appropriate
       in short, no guarantees 

   Each hint is:
       summarized by a slogan
       illustrated with examples from systems work
       preceded by an appropriate quotation from Hamlet!


   Hints for functionality (does it work?), speed (is it fast enough?) and fault
    tolerance (does it keep working?)

   Pre-req: Notion of an interface that separates an implementation of some
    abstraction from the clients who use the abstraction
       “Defining interfaces is the most important part of system design”
Hints for Functionality
   Do one thing at a time, and do it       Perfection is reached not when
    well                                       there is no longer anything to
       KISS                                   add, but when there is no longer
       Don’t generalize, generalizations      anything to take away!
        are generally wrong!                   A. Saint-Exupery
   Interface should capture the            We are faced with an
    minimum essentials of an                  insurmountable opportunity
    abstraction                                W. Kelley
       mustn’t promise more features
        than the implementer knows
        how to deliver (without
        penalizing other clients)
   Service should have a fairly            Everything should be made as
    predictable cost                          simple as possible, but no
                                              simpler
   But, get it right!                         A. Einstein
Hints for Functionality...
   Make it fast, rather than general or powerful
       Analogous to the RISC principle...
       Better to have fast, basic operations than slow, powerful
        ones
       Clients who don‟t need the power shouldn‟t have to pay
        more for the basic functionality
       As long as it‟s fast, a client can program the additional
        functionality it needs; another client can program some
        other function

   Don’t hide power
       If a low-level abstraction allows something to be done
        quickly, higher levels should not bury this power inside
        something more general
           abstractions should conceal only undesirable properties!
Hints for Functionality...
   Use procedure arguments to provide flexibility in an
    interface
       restricted or encoded as necessary
       e.g. an interface for listing all elements of a set that satisfy
        a property
           let clients pass in a filter vs. a special language of patterns

   Leave it to the client
       keep the interface simple, flexible and high-performance
       caveat: as long as it is cheap to pass control back and
        forth
       e.g. success of monitors for synchronization, because
        locking and signalling do very little
           clients take care of process scheduling, buffer allocation,
            resource accounting, etc. or use other libraries for that
       e.g. Unix style utilities: stdin  processing  stdout
Hints for Functionality...
   Keep basic interfaces stable
       embodies assumptions shared by many parts of a system
       if type-checking is available, may be possible to check for
        number and types of arguments
           but still requires programmers to rework the integration
           may not detect semantic changes in interfaces

   Keep a place to stand...
       ... if you do change interfaces
       e.g. a compatibility package, implements an old interface
        on top of the new one
       e.g. OS simulators
           dev cost may be less vs. cost of fixing all client software
           performance hit, but often acceptable
Hints for Functionality...
   Plan to throw one away...
       ... you will, anyhow!
   Keep secrets...
       assumptions about an implementation that clients aren‟t allowed
        to make
       tension vs. the desire not to hide power
       tension vs. the need for performance
   Divide and conquer
       reduce a problem to several easier ones
       bite off as much as will fit, leaving the rest for the next iteration
           e.g. Alto‟s file system defragmentation and its use of memory
   Handle normal and worst cases separately
       the normal case must be fast, the worst case must make
        progress
       e.g. caches and hints help the normal case
       e.g. Garbage Collector in Cedar doesn‟t count refs in local
        frames; those are scanned completely during GC
Hints for Speed
   Split resources in a fixed way, rather than sharing them
       faster to allocate, faster to access, more predictable
           e.g. using register banks vs. memory
       cost of extra resources is usually low
       multiplexing overheads may be larger than the fragmentation waste

   Dynamic translation...
       ... from a convenient representation to one that can be quickly
        interpreted
       e.g. Smalltalk compiler generates bytecodes, implementation translates
        (and caches) a single procedure‟s bytecodes to machine language when
        invoked

   Cache answers to expensive computations
       store the triple [f, x, f(x)] in an associative store
       basic example: processor cache or virtual memory systems
           [Fetch, address, contents of address]
       need to ensure cache invalidation/update for non-functional f() such as
        Fetch()
Hints for Speed...
   Use hints
       like a cache entry (saved result of some computation), but:
           not necessarily reached by associative lookup
           may be wrong!
       if using a hint for unrecoverable actions, need to check if
        it‟s wrong
       e.g. store-and-forward routing tables in Arpanet
           based on each node‟s opinion about its links to neighbours
           periodically broadcast (can be lost, or delivered out of order)


   When in doubt, use brute force
       hardware is cheap (even in 1983!)
       brute force allows for cheaper, faster implementation
       e.g. chess-playing computers that use brute-force vs.
        sophisticated chess strategies
Hints for Speed...
   Compute in the background where possible
       especially in interactive or real-time systems
       e.g., Cedar garbage collector, e-mail delivery, etc.

   Use batch processing if possible
       doing things incrementally usually costs more
       disks and tapes work better when accessed sequentially
       e.g. banking systems use online data, but discard it after nightly batch

   Safety first
       in allocating resources, avoid disaster vs. being optimal
       “a general-purpose system cannot optimize the use of resources”
       again, “hardware is cheap, and getting cheaper”
       cleverness works only if you have very well-known loads
       “The nicest thing about the Alto is that it doesn’t run faster at night” – Morris
           no fancy processor scheduling, fixed share of cycles to each job


   Shed load to control demand
       e.g. Arpanet moved from guaranteed to best-effort delivery
Hints for Fault-Tolerance
   End-to-end
       Saltzer et al. classic paper, 1981 ICDCS
       error recovery at app level is necessary for a reliable system
           any other error detection or recovery is strictly for performance
       e.g. file transfer across a network from A to B
           reading from B‟s disk and validating checksum against A‟s disk is necessary
           checking the transfer from A‟s disk to A‟s memory, or from A to B over the
            network, is not sufficient
           not necessary either, but can help performance (retransfer only corrupted
            parts)
   Log updates to record the truth about an object’s state
       current state of object is treated like a hint
       log entry must include update procedure (functional) and its arguments
       sequence of log entries can be re-executed if necessary to re-create the
        true state
   Make actions atomic or restartable
       atomic: failure during the action has no effect
       log entries need to be restartable / idempotent
           can be partially executed any number of times before a complete execution
In Conclusion...
   Most humbly do I take my leave, my lord.

   “Such a collection of good advice and
    anecdotes is rather tiresome to read; perhaps
    it is best taken in small doses at bedtime”!

   “I can only plead that I have ignored most of
    these rules at least once, and nearly always
    regretted it”
For more information…
   http://amturing.acm.org/award_winners/lampso
    n_1142421.cfm - Profile of Lampson on ACM
    site
   http://amturing.acm.org/bib/lampson_1142421.
    cfm - citations for the 3 SIGOPS HoF papers
   http://research.microsoft.com/en-
    us/um/people/blampson/default.htm -
    Lampson‟s homepage at MSR
Questions?

Más contenido relacionado

Similar a Life & Work of Butler Lampson | Turing100@Persistent

"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017Neeran Karnik
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3Diane Allen
 
hints for computer system design by Butler Lampson
hints for computer system design by Butler Lampsonhints for computer system design by Butler Lampson
hints for computer system design by Butler Lampsonmustafa sarac
 
Software engineering
Software engineeringSoftware engineering
Software engineeringFahe Em
 
Software engineering
Software engineeringSoftware engineering
Software engineeringFahe Em
 
Introduction to Operating Systems
Introduction to Operating SystemsIntroduction to Operating Systems
Introduction to Operating SystemsImran Waris
 
Being Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the CloudBeing Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the CloudRandy Shoup
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit TestJill Bell
 
Shamsa altayer
Shamsa altayerShamsa altayer
Shamsa altayershamsaot
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And PatternsAnil Bapat
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsUwe Friedrichsen
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data scienceFrank Kienle
 

Similar a Life & Work of Butler Lampson | Turing100@Persistent (20)

"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017"Hints" talk at Walchand College Sangli, March 2017
"Hints" talk at Walchand College Sangli, March 2017
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
hints for computer system design by Butler Lampson
hints for computer system design by Butler Lampsonhints for computer system design by Butler Lampson
hints for computer system design by Butler Lampson
 
Old Is the New New
Old Is the New NewOld Is the New New
Old Is the New New
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SDN Abstractions
SDN AbstractionsSDN Abstractions
SDN Abstractions
 
Introduction to Operating Systems
Introduction to Operating SystemsIntroduction to Operating Systems
Introduction to Operating Systems
 
Being Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the CloudBeing Elastic -- Evolving Programming for the Cloud
Being Elastic -- Evolving Programming for the Cloud
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit Test
 
Shamsa altayer
Shamsa altayerShamsa altayer
Shamsa altayer
 
L23 Summary and Conclusions
L23 Summary and ConclusionsL23 Summary and Conclusions
L23 Summary and Conclusions
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
Nachos
NachosNachos
Nachos
 
Nachos
NachosNachos
Nachos
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
 
Embedded systems
Embedded systemsEmbedded systems
Embedded systems
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
L2
L2L2
L2
 
DevOps - Introduction to data science
DevOps - Introduction to data scienceDevOps - Introduction to data science
DevOps - Introduction to data science
 

Más de Persistent Systems Ltd.

Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Persistent Systems Ltd.
 
Embedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkEmbedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkPersistent Systems Ltd.
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkPersistent Systems Ltd.
 
Life and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentLife and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentPersistent Systems Ltd.
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Persistent Systems Ltd.
 
What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...Persistent Systems Ltd.
 
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Persistent Systems Ltd.
 
Life and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentLife and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentPersistent Systems Ltd.
 
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentEarly History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentPersistent Systems Ltd.
 
Life and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentLife and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentPersistent Systems Ltd.
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentPersistent Systems Ltd.
 
Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Persistent Systems Ltd.
 
Life & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@PersistentLife & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@PersistentPersistent Systems Ltd.
 
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentLife & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentPersistent Systems Ltd.
 
Net Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsNet Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsPersistent Systems Ltd.
 
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsAlan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsPersistent Systems Ltd.
 
Life and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentLife and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentPersistent Systems Ltd.
 
Alan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsAlan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsPersistent Systems Ltd.
 

Más de Persistent Systems Ltd. (19)

Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
 
Embedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkEmbedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing Techtalk
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
 
Life and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentLife and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@Persistent
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
 
What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...
 
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
 
Life and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentLife and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@Persistent
 
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentEarly History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
 
Life and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentLife and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@Persistent
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@Persistent
 
System Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@PersistentSystem Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@Persistent
 
Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…
 
Life & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@PersistentLife & Work of Robin Milner | Turing100@Persistent
Life & Work of Robin Milner | Turing100@Persistent
 
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentLife & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
 
Net Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsNet Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent Systems
 
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsAlan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
 
Life and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentLife and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@Persistent
 
Alan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsAlan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent Systems
 

Último

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Life & Work of Butler Lampson | Turing100@Persistent

  • 1. DR. BUTLER LAMPSON 1992 TURING AWARD WINNER Neeran M. Karnik Product Architect, BMC Software
  • 4. … in the Laboratory…
  • 5. … with a Screwdriver!
  • 6. Dr. Butler Lampson 1992 ACM Turing Award
  • 7. Agenda  Systems Research  Butler Lampson‟s life and work  Hints…  Q&A
  • 9. Systems Research  Designing large and/or complex computing systems  computers (from tablets to supercomputers)  networks  printers  etc.  Includes the software:  operating systems  programming languages  networking stacks  file systems  distributed systems  etc.
  • 10. Systems Research…  How it‟s different from say, algorithm design:  external interface (requirement) is less precise, more complex, subject to change…  more internal structure, thus more internal interfaces  module-level design choices have wider implications  measure of success is unclear  No such thing as a „best‟ design  more important to avoid making terrible choices  Usually, the physical system doesn‟t yet exist!  simultaneous development of the hardware and software  how do you design and test the software?  how do you design and test the hardware?
  • 11. Dr. Butler Lampson His life and work
  • 12. The 1992 Turing Award CITATION:  For contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing.
  • 13. A 1-page Biography  Born in 1943, in Washington, DC  Education:  B.A. in Physics at Harvard, 1964  Ph.D. in EECS at Univ. of California at Berkeley, 1967, aged 23!  Work:  Xerox PARC, 1971-1984  DEC SRC, 1984-1995  Microsoft Research, 1995-  Systems:  Alto (workstation)  Bravo (WYSIWYG editor)  Cal (timesharing system)  Dover (laser printer)  Awards:  1992 ACM Turing Award  ACM Software Systems Award  IEEE Computer Pioneer Award  IEEE von Neumann Award  3 papers in ACM SIGOPS Hall of Fame!
  • 14. The Xerox Alto  The first personal computer, built in 1973 at PARC  First computer to use the desktop metaphor  First computer with a mouse-driven GUI  Conceived in a 1972 memo written by Lampson  Design led by Charles Thacker (2009 Turing)  Lampson contributed to the design  Wrote the OS!  Lampson et al. won the 1984 ACM Software System Award and the 2004 NAE Draper prize for the Alto  Later work: led the design of Dorado and
  • 15. The Bravo editor  First WYSIWYG editor  Shipped with the Xerox Alto  Developed by Lampson, Simonyi et al. in 1974  Led to the development of Microsoft Word
  • 16. The Xerox 9700 and Dover Laser Printers  First laser printer, at PARC, 1969, led by Gary Starkweather  Lampson co-designed the electronics and software  prototype for the Xerox 9700  Dover Laser Printer  later version, in 1976  much cheaper  Lampson designed the electronics
  • 17. SDS 940  First general-purpose time-sharing system, with char-by-char interaction  Project Genie at Berkeley  Lampson joined as graduate student  wrote parts of the OS  created several programming languages!  Cal: interactive language for numerical computation  QSPL: system programming
  • 18. Other Research  Two-phase commit protocol for distributed transactions (with Sturgis)  Cal time-sharing system for CDC 6400 (at Berkeley)  pioneered shadow pages, redo logs  capability-based system: not a good basis for long-term security  Programming Languages:  Mesa and SPL for systems programming  Mesa‟s process mechanism  modern thread systems  Cedar: combining the virtues of Mesa and Lisp  Euclid: first language designed to enable program verification  Modula 2+: extends Wirth‟s Modula-2
  • 19. But wait, there‟s more!  Security  Access Matrix model, unifying capabilities and ACLs  Information Flow Control  Theory of Principals “speaking for” other principals  Microsoft Palladium (TCB)  Scrubbing disk storage  How economic factors (not technology) inhibit security  Networking  co-inventor on Xerox patent for Ethernet!  switched LAN at DEC SRC  Formal specification and proof  TCP connection establishment (at-most-once messaging)  Leslie Lamport‟s Paxos protocol
  • 20. Phew!
  • 21. Hints for Computer System Design
  • 22. The Hints paper...  Presented at the 9th SOSP, appeared in SIGOPS OSR October 1983, reprinted in IEEE Software Jan 1984  Summarizes the learnings from years of systems research and implementation  Still influential after all these years... e.g.:  Werner Vogels, CTO, Amazon  Butler's paper shows a great mix of fundamentals and best practices from the early days of large scale system design. Almost all of his advice has withstood the test of time and as such they are even more important now than in 1983  from a July 2012 blog post
  • 23. How it‟s organized  “Hints”:  not laws  not foolproof recipes  not consistent  not always appropriate  in short, no guarantees   Each hint is:  summarized by a slogan  illustrated with examples from systems work  preceded by an appropriate quotation from Hamlet!  Hints for functionality (does it work?), speed (is it fast enough?) and fault tolerance (does it keep working?)  Pre-req: Notion of an interface that separates an implementation of some abstraction from the clients who use the abstraction  “Defining interfaces is the most important part of system design”
  • 24. Hints for Functionality  Do one thing at a time, and do it Perfection is reached not when well there is no longer anything to  KISS add, but when there is no longer  Don’t generalize, generalizations anything to take away! are generally wrong! A. Saint-Exupery  Interface should capture the We are faced with an minimum essentials of an insurmountable opportunity abstraction W. Kelley  mustn’t promise more features than the implementer knows how to deliver (without penalizing other clients)  Service should have a fairly Everything should be made as predictable cost simple as possible, but no simpler  But, get it right! A. Einstein
  • 25. Hints for Functionality...  Make it fast, rather than general or powerful  Analogous to the RISC principle...  Better to have fast, basic operations than slow, powerful ones  Clients who don‟t need the power shouldn‟t have to pay more for the basic functionality  As long as it‟s fast, a client can program the additional functionality it needs; another client can program some other function  Don’t hide power  If a low-level abstraction allows something to be done quickly, higher levels should not bury this power inside something more general  abstractions should conceal only undesirable properties!
  • 26. Hints for Functionality...  Use procedure arguments to provide flexibility in an interface  restricted or encoded as necessary  e.g. an interface for listing all elements of a set that satisfy a property  let clients pass in a filter vs. a special language of patterns  Leave it to the client  keep the interface simple, flexible and high-performance  caveat: as long as it is cheap to pass control back and forth  e.g. success of monitors for synchronization, because locking and signalling do very little  clients take care of process scheduling, buffer allocation, resource accounting, etc. or use other libraries for that  e.g. Unix style utilities: stdin  processing  stdout
  • 27. Hints for Functionality...  Keep basic interfaces stable  embodies assumptions shared by many parts of a system  if type-checking is available, may be possible to check for number and types of arguments  but still requires programmers to rework the integration  may not detect semantic changes in interfaces  Keep a place to stand...  ... if you do change interfaces  e.g. a compatibility package, implements an old interface on top of the new one  e.g. OS simulators  dev cost may be less vs. cost of fixing all client software  performance hit, but often acceptable
  • 28. Hints for Functionality...  Plan to throw one away...  ... you will, anyhow!  Keep secrets...  assumptions about an implementation that clients aren‟t allowed to make  tension vs. the desire not to hide power  tension vs. the need for performance  Divide and conquer  reduce a problem to several easier ones  bite off as much as will fit, leaving the rest for the next iteration  e.g. Alto‟s file system defragmentation and its use of memory  Handle normal and worst cases separately  the normal case must be fast, the worst case must make progress  e.g. caches and hints help the normal case  e.g. Garbage Collector in Cedar doesn‟t count refs in local frames; those are scanned completely during GC
  • 29. Hints for Speed  Split resources in a fixed way, rather than sharing them  faster to allocate, faster to access, more predictable  e.g. using register banks vs. memory  cost of extra resources is usually low  multiplexing overheads may be larger than the fragmentation waste  Dynamic translation...  ... from a convenient representation to one that can be quickly interpreted  e.g. Smalltalk compiler generates bytecodes, implementation translates (and caches) a single procedure‟s bytecodes to machine language when invoked  Cache answers to expensive computations  store the triple [f, x, f(x)] in an associative store  basic example: processor cache or virtual memory systems [Fetch, address, contents of address]  need to ensure cache invalidation/update for non-functional f() such as Fetch()
  • 30. Hints for Speed...  Use hints  like a cache entry (saved result of some computation), but:  not necessarily reached by associative lookup  may be wrong!  if using a hint for unrecoverable actions, need to check if it‟s wrong  e.g. store-and-forward routing tables in Arpanet  based on each node‟s opinion about its links to neighbours  periodically broadcast (can be lost, or delivered out of order)  When in doubt, use brute force  hardware is cheap (even in 1983!)  brute force allows for cheaper, faster implementation  e.g. chess-playing computers that use brute-force vs. sophisticated chess strategies
  • 31. Hints for Speed...  Compute in the background where possible  especially in interactive or real-time systems  e.g., Cedar garbage collector, e-mail delivery, etc.  Use batch processing if possible  doing things incrementally usually costs more  disks and tapes work better when accessed sequentially  e.g. banking systems use online data, but discard it after nightly batch  Safety first  in allocating resources, avoid disaster vs. being optimal  “a general-purpose system cannot optimize the use of resources”  again, “hardware is cheap, and getting cheaper”  cleverness works only if you have very well-known loads  “The nicest thing about the Alto is that it doesn’t run faster at night” – Morris  no fancy processor scheduling, fixed share of cycles to each job  Shed load to control demand  e.g. Arpanet moved from guaranteed to best-effort delivery
  • 32. Hints for Fault-Tolerance  End-to-end  Saltzer et al. classic paper, 1981 ICDCS  error recovery at app level is necessary for a reliable system  any other error detection or recovery is strictly for performance  e.g. file transfer across a network from A to B  reading from B‟s disk and validating checksum against A‟s disk is necessary  checking the transfer from A‟s disk to A‟s memory, or from A to B over the network, is not sufficient  not necessary either, but can help performance (retransfer only corrupted parts)  Log updates to record the truth about an object’s state  current state of object is treated like a hint  log entry must include update procedure (functional) and its arguments  sequence of log entries can be re-executed if necessary to re-create the true state  Make actions atomic or restartable  atomic: failure during the action has no effect  log entries need to be restartable / idempotent  can be partially executed any number of times before a complete execution
  • 33. In Conclusion...  Most humbly do I take my leave, my lord.  “Such a collection of good advice and anecdotes is rather tiresome to read; perhaps it is best taken in small doses at bedtime”!  “I can only plead that I have ignored most of these rules at least once, and nearly always regretted it”
  • 34. For more information…  http://amturing.acm.org/award_winners/lampso n_1142421.cfm - Profile of Lampson on ACM site  http://amturing.acm.org/bib/lampson_1142421. cfm - citations for the 3 SIGOPS HoF papers  http://research.microsoft.com/en- us/um/people/blampson/default.htm - Lampson‟s homepage at MSR