A software system that sits between user code and the underlying hardware. An operating provides (OSTEP): Virtualization Concurrency Persistence