Chapter 4. Operating-System Design

  • 4.1 A Simple System

    • 4.1.1 A Framework for Devices

    • 4.1.2 Low-Level Kernel

      • 4.1.2.1 Terminals

      • 4.1.2.2 Network Communication

    • 4.1.3 Processes and Threads

    • 4.1.4 Storage Management

      • 4.1.4.1 Managing Primary Storage

      • 4.1.4.2 File Systems

  • 4.2 Rethinking Operating-System Structure

    • 4.2.1 Virtual Machines

      • 4.2.1.1 Processor Virtualization

      • 4.2.1.2 I/O Virtualization

      • 4.2.1.3 Paravirtualization

    • 4.2.2 Microkernels

  • 4.3 Conclusions

  • 4.4 Exercises

  • 4.5 References

In the previous chapter we discussed many of the concepts used in operating systems. Now we begin to examine how operating systems are constructed: what goes into them, how the components interact, how the software is structured so as to make the whole understandable and supportable, and how performance concerns are factored in. We also introduce such key components as scheduling, virtual memory, and file systems here and cover them in detail in later chapters.

Our approach is to look at a simple hardware configuration and work through the design of an equally simple operating system for it. Many of the details are covered in depth in later chapters. Similarly, we examine more sophisticated operating-system features in later chapters as well.

As far as applications are concerned, the operating system is the computer. It provides processors, memory, files, networking, interaction devices such as display and mouse, and whatever else is needed. The challenge of operating-system design is to integrate these components into a consistent ...

Get Operating Systems in Depth now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.