sp26-cs537 cs537
Lecture 1 - Introduction Lecture 1 - Introduction
Instructor: Michael Swift & Tej Chajed Topics: What is an OS, OS abstractions, virtualization, concurrency, persistence, OS history
Learning Objectives
- Understand the purpose of the operating system
- Understand the position of the operating system in a computer running applications
- Understand the evolution of operating systems
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
| Year | Milestone |
|---|---|
| 2700 BC | Abacus |
| 1871 | Babbage Analytical Engine |
| 1946 | ENIAC |
| 1948 | ZAM-41 Drum Memory |
| 1950 | Core Memory |
| 1951 | Univac |
| 1952 | IBM 701 |
| 1954 | IBM 704 |
| 1956 | IBM RAMAC (first hard disk) |
| 1960 | Digital PDP-1 |
| 1961 | IBM 7094, Ferranti Atlas |
| 1965 | PDP-8, Electrologica X8, IBM S/360 |
| 1967 | IBM 360/67 + CP/40 |
| 1969 | ARPANET |
| 1970 | GE 645 / Multics, Digital PDP-11/20 + Unix |
| 1973 | Xerox Alto |
| 1975 | Ethernet, MITS Altair |
| 1977 | Apple ][, Digital VAX |
| 1981 | IBM PC |
| 1984 | Apple Macintosh |
| 1985 | Sun Network File System (NFS) |
| 1991 | Windows 3.1 |
| 1993 | Linux |
| 1994 | Mosaic Browser |
| 1995 | Windows 95, Internet |
| 1996 | |
| 1999 | VMware, WiFi |
| 2001 | Mac OS X |
| 2004 | Mica Sensor Mote |
| 2005 | Sun UltraSPARC Niagara T1 |
| 2007 | Apple iPhone |
| 2009 | Container Data Center |
Related
- Navigation: Lecture 2 →
- Exam: Midterm 1
- Course: CS 537 Map of Content