Operating System (OS)

OS provides services to clients, implemented by the underlying resources. It provides an abstraction layer.

Think of an OS as a program that runs a bunch of other programs.

Learned formally in SE350.

Informally: Something that helps you use the available hardware.

Originally: Expensive hardware, cheap people Goal: maximize hardware utilization

Now: cheap hardware, expensive people Goal: make it easy for people to use.

How to make it easier to use? Abstractions!

Humans don’t interact with the raw OS directly. Instead they use

  • The native OS GUI
  • or a shell (through a CLI)


Operating Systems

I need to fundamentally learn how threads work: