Operating Systems

Operating System: a layer of software that abstracts the hardware by providing programs with a better, simpler, cleaner abstractions to work with

Kernel mode (aka supervisor mode) vs. user mode

Multiplexing is the sharing of resources:

  • Time multiplexing: managing when resources can be used
  • Space multiplexing: managing how space is shared between resources

Shell: Takes in user input to run programs and commands

OS Structure #

Monolithic vs Microkernel Virtual machines

  1. Processes
  2. Threads
  3. IPC
  4. Scheduling
  5. Memory
  6. File systems
  7. IO
  8. Virtualization
  9. System calls