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