Why Grad OS?

  • Broaden horizons of designing OS
  • learn not just what but why

What will I get out of this course?

  • principles for OS design
  • experience with reading research papers
  • comfort discussing research material
  • experience measuring systems performance

Reading Questions

  • What are the goals of author?
  • What is the overall approach?
  • How does it compare to prior works?
  • how does the paper back up their claims with evidence?
    • Do you buy it?
    • Do they do a good job demonstrating their approach?
  • Do they achieve their goals?
  • Note: Papers are not necessarily truth

What is an Operating System?

  • interface between hardware and application
  • managing hardware resources
  • isolation, security, protections
  • abstraction of hardware resources
  • illusions to applications
  • handles interrupts and exceptions
  • define policies and enforce them for applicaitons

Windowing Environment

Is it part of the OS?

  • It depends on OS, if it’s running on the user level or not
    • linux - user level
    • windows - part of OS
    • need to interact with device drivers which requires kernel level

Web Browser

Is it part of the OS?

  • No, user level program that runs on top of OS
    • precedent - 90s anti trust case with microsoft and netscape
    • not always the case (before 90s)

Network Stack

Is it part of the OS?

  • Yes, use system calls to interact with device drivers?
  • not always
    • might implement stack at user level for better performance
    • depends on the layer
  • layers:
    • HTTP - user level
    • TCP - OS
    • Ethernet - OS
    • Hardware (NIC) - OS

Memory Allocation

Is it part of the OS?

  • Yes - managing physical memory
  • Yes - users use virtual memory
  • No - some control of memory from user level (stack vs heap/virtual)
  • Yes - OS provides interfaces to request mem, but OS is in charge
  • Both - some memory allocation in OS (paging, handling faults) and some in User level (GC, Malloc, Free)
  • Yes - memory is a physical resource, at some level OS has to manage memory

Similar to Network Stack example, split between OS and userspace

  • Ex:
	| App | ---malloc---> | libc |       user level
                        mmap sbrk        OS

How different are different OSes?

similar - all managing hardware resources depends - some are more configurable different - if looking at different settings, business requirements different support for low-level hardware