wisconsin
Lecture 1 - Introduction

Lecture 1 - Introduction

Curated by Last modified: 3 min read

Instructor: Michael Swift & Tej Chajed Topics: What is an OS, OS abstractions, virtualization, concurrency, persistence, OS history


What is an Operating System?

Operating System (OS): A software layer to abstract away and manage details of hardware resources; a set of utilities to simplify application development.

  • “All the code you didn’t write” in order to implement your application
graph TD
    A[Applications] --> B[OS]
    B --> C[Hardware]

The OS and Hardware

  • An OS mediates programs’ access to hardware resources
    • Computation (CPU)
    • Volatile storage (memory) and persistent storage (disk, etc.)
    • Network communications (TCP/IP stacks, ethernet cards, etc.)
    • Input/output devices (keyboard, display, sound card, etc.)
  • The OS abstracts hardware into logical resources and well-defined interfaces to those resources
    • Processes (CPU, memory)
    • Files (disk)
      • Programs (sequences of instructions)
    • Sockets (network)

Why Use an OS?

Application Benefits

  • Programming simplicity
    • See high-level abstractions (files) instead of low-level hardware details (device registers)
    • Abstractions are reusable across many programs
  • Portability (across machine configurations or architectures)
    • Device independence: 3Com card or Intel card?

User Benefits

  • Safety
    • Program “sees” its own virtual machine, thinks it owns the computer
    • OS protects programs from each other
    • OS fairly multiplexes resources across programs
  • Efficiency (cost and speed)
    • Share one computer across many users
    • Concurrent execution of multiple programs

What Functionality Belongs in an OS?

  • No single right answer
    • Desired functionality depends on outside factors
    • OS must adapt to both user expectations and technology changes
      • Change abstractions provided to users
      • Change algorithms to implement those abstractions
      • Change low-level implementation to deal with hardware
  • Current operating systems are driven by evolution

Major Themes in OS

Virtualization

  • Taking physical hardware and making a software version that is sharable, easier to use, more powerful
  • Examples:
    • CPU: We can run two programs at the same time
    • Memory: Programs see a linear range of addresses but underlying DRAM is shared in 4KB chunks
    • Disk: We use files/folders, disk internally has blocks

Concurrency

  • Maintaining correctness when many things happen at once
  • Examples:
    • Code on 2 CPUs try to increment the same variable

Persistence

  • Keep data safe across system crashes/reboots

History of Operating Systems

YearMilestone
2700 BCAbacus
1871Babbage Analytical Engine
1946ENIAC
1948ZAM-41 Drum Memory
1950Core Memory
1951Univac
1952IBM 701
1954IBM 704
1956IBM RAMAC (first hard disk)
1960Digital PDP-1
1961IBM 7094, Ferranti Atlas
1965PDP-8, Electrologica X8, IBM S/360
1967IBM 360/67 + CP/40
1969ARPANET
1970GE 645 / Multics, Digital PDP-11/20 + Unix
1973Xerox Alto
1975Ethernet, MITS Altair
1977Apple ][, Digital VAX
1981IBM PC
1984Apple Macintosh
1985Sun Network File System (NFS)
1991Windows 3.1
1993Linux
1994Mosaic Browser
1995Windows 95, Internet
1996Google
1999VMware, WiFi
2001Mac OS X
2004Mica Sensor Mote
2005Sun UltraSPARC Niagara T1
2007Apple iPhone
2009Container Data Center

Linked to this page