Operating Systems

Definition

Program which facilitates communication between user and hardware. Hardware architectures vary greatly, but have common properties which we abstract over.

user <-- This still works!
 |                   ^
 OS                  |
 | \                 |
 |  Hardware 2 <-- We can switch these
 |               |
 Hardware 1 <-----

Different paths user programs can take

---------------------------------
| System    | User Programs     |
| Processes |   -------------   |
|           |   | Libraries |   |
| --------------------|     |   |
| OS                  |     |   |
|---------------------|-----|---|
| Hardware                      |

Requirements

Implementation

Organization of various components

  • flexibility
  • robustness
  • Maintainability

Kernel mode

User mode

Structures

Monolithic MicroKernel OS Exokernel [Research] Split kernel [Research] Client-Server Model Layered Systems Virtual machines / Hypervisors

Others

What exactly is a kernel?