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
Simplify programming
Usage policies
User program portability
Efficiency
Implementation
Organization of various components
- flexibility
- robustness
- Maintainability
Structures
Monolithic MicroKernel OS Exokernel [Research] Split kernel [Research] Client-Server Model Layered Systems Virtual machines / Hypervisors