Logo

Chapter 1: Introduction

"An operating system is the layer of software that manages a computer's resources for its users and their applications."

Roles

An operating system plays three main roles for the computer.

Goals

An operating system should satisfy the following criteria as best as possible.

In general, many of these criteria may oppose each other. Improvements in performance can impact security and portability negatively, for instance.

Operating Systems: Past, Present, and Future

Moore's Law

In previous decades, Moore's Law allowed operating system developers to ignore performance to some extent, as hardware got faster and faster, year by year. However, as Moore's Law slows down, OS maintainers increasingly have to consider performance, and how to best design an OS to not sacrifice the other qualities.

Multi-User Operating Systems

After the development of early operating systems, for the purpose of reducing programmer errors, came multi-user operating systems. This allowed sharing of resources between different users and applications.

A batch operating system worked on a queue of tasks, that could allow two tasks to "run" in tandem, one fetching from I/O devices using direct memory access (DMA). Next came multiprogramming, which was essentially just concurrency. batch operating systems introduced challenges. though, in the lack of program isolation and the difficulty of debugging the operating system (required to turn the computer into a single-user system temporarily).

Time-Sharing Operating Systems

These were operating systems developed for interactive use, rather than processor-heavy jobs. This is your typical personal computer, which spends much of the time waiting for I/O from hardware like a keyboard or mouse. This required designing operating systems to handle bursts of activity, rather than consistent, sustained activity as seen in batch processing.

Modern Operating Systems

Lots of different types of operating systems for different applications, now. Too many to talk about.