Operating systems

As a software engineer, most of the code you write will be run by an operating system. Therefore, it’s useful to understand the internals of operating systems.

Table of contents

  1. Introduction
  2. References


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

OSes provide:

  • 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.