Operating systems

As a software engineer, most of the code you write will be run by an operating system. Understanding the internals of operating systems will help you write more performant programs.

Table of contents

  1. Introduction
  2. References


An operating system (OS) is the software that manages a computer’s resources for the computer’s users and their applications [1, P. 4].

An OS provides:

  • Resource allocation
  • Isolation
  • Communication

An OS is responsible for resource allocation. It must allocate finite memory and processors to running applications.

An OS must provide isolation. A bug in one program shouldn’t bring down the system, and users shouldn’t be able to access or change another user’s data [1, P. 9].

Sometimes isolated programs need to communicate with each other. An OS provides mechanisms for communication between running programs [1, P. 9].


  1. [1] T. Anderson and M. Dahlin, Operating Systems: Principles and Practice. 2012.