Chapter 1: Introduction to Operating Systems
  1. Introduction
    1. Main divisions.
      1. Kernel and applications.
      2. Utilities in between.
      3. Interfaces.
        1. Utilities for users.
        2. System calls for applications.
    2. Extended machine and a resource manager.
      1. Extended machine: Adds function to the machine.
        Sometimes: Virtual machine; not the sense you're used to.
        1. Device drivers.
        2. Processes.
        3. File system.
        4. Networking protocols.
      2. Resource manager: Allocates and enforces the allocation.
        1. Memory: what part is free, and who's using the rest?
        2. Disk: same.
        3. Assigns exclusive devices (like printers) to some controlling process.
  2. History.
    1. First Generation. 1940's + '50's.
      1. Hardware: Relays or vacuum tubes.
      2. No OS.
      3. Programmer signs up for a time slot and runs a program.
      4. Much time spent mounting tapes and cards.
      5. Low utilization of a very expensive piece of equipment.
    2. Second Generation. Batch systems Mid 1960's to mid '70's.
      1. Hardware: Transistors.
      2. Cheaper machine “batches” jobs on magnetic tape.
      3. Computer runs them from the tape, one at a time.
      4. Output batched on a second tape, and printed from tape.
      5. Programmer no longer runs his own program.
      6. One user program at a time.
    3. Third Generation 1965 to 1980.
      1. Hardware: Integrated circuits.
      2. Leader: IBM 360.
      3. Multiprogramming. Combine compute- and I/O-bound jobs.
      4. Each program has its own region in memory.
      5. Spooling: CPU and peripherals operate in parallel on one machine.
      6. Time-sharing.
        1. Batch operation: Give your job to the operator and wait.
        2. Multiple users communicate with multiple command interpreters running as separate processes.
        3. Text-based user interface, via teletype.
        4. Application of multiprogramming.
        5. Leader: CTSS (Compatible Time Sharing System).
        6. Gorilla: Multics
          1. Joint project of MIT and ATT.
          2. Custom hardware.
          3. Provide computing as a utility service.
          4. Kitchen sink approach.
          5. Advanced the technology; commercial failure.
        7. Red-headed stepchild: Unix
          1. Created by idled ex-Multics programmers at ATT.
          2. Small-is-beautiful approach, but borrowed a lot from Multics.
          3. Highly influential.
          4. Descendants and variations: System V, Solaris, BSD, Linux.
      7. Minicomputers
        1. Much smaller and cheaper than the big IBM machines.
        2. Leader: Digital Equipment Corp (DEC), PDP series.
          1. Unix first developed on PDP-7.
          2. Moved a PDP-11.
    4. Fourth Generation. Personal computing 1980-present.
      1. Hardware: Integrated CPU.
      2. 1975: Intel 8080.
      3. 1976: Apple I; '77: Apple II.
      4. 1981: IBM PC, MS-DOS.
      5. GUIs
        1. Englebart at Xerox PARC, 1960s.
        2. Xerox products too expensive; not successful.
        3. Jobs visits PARC.
        4. First successful GUI in the Mac.
        5. MS answered with Windows.
          1. Windows 3.1, 95, 98, ME
          2. Windows NT, 2000, XP, Vista, 7, etc.
    5. Fifth Generation: Mobile computing.
      1. Limited computing power.
      2. Limited electrical power.
      3. Limited peripherals, including user interface devices.
      4. OS's
        1. Symbian was first widely-used phone OS.
        2. Blackberry OS, and later iOS, eclipsed it.
        3. Android now the leading mobile OS.