Outline for November 21, 2003

Reading: Chapter 18.2, 22.1-22.2

Discussion Problem

The UNIX operating system (and most computer systems) have an all-powerful user (root or administrator or wheel).

  1. Why does such a user exist?
  2. Dennis Ritchie called the existance of this user "both a theoretical and practical flaw." Why?
  3. If you were designing an operating system with security being a key goal, could you avoid creating such a user? If so how? If not, how would you implement the functionality of the root user?

Outline for the Day

  1. Life cycle: Waterfall Model
    1. Requirements definition and analysis
    2. System and software design (system design, program design)
    3. Implementation and unit testing
    4. Integration and system testing
    5. Operation and maintenance
  2. Other life cycle models
    1. Exploratory programming
    2. Prototyping
    3. Formal transformation
    4. System assembly from reusable components
    5. Extreme programming
  3. Malicious logic
    1. Quickly review Trojan horses, viruses, bacteria; include animal and Thompson's compiler trick

Here is a PDF version of this document.