An operating system provides the environment within which programs are executed.
Internally, operating systems vary greatly in their makeup, since they are organized
along many different lines. The design of a new operating system is a major task. It is
important that the goals of the system be well defined before the design begins. These
goals form the basis for choices among various algorithms and strategies.
We can view an operating system from several vantage points. One view focuses on the
services that the system provides; another, on the interface that it makes available to
users and programmers; and a third, on its components and their interconnections. In
this chapter, we explore all three aspects of operating systems, showing the viewpoints
of users, programmers, and operating-system designers. We consider what services an
operating system provides, how they are provided, and what the various methodologies
are for designing such systems. Finally, we describe how operating systems are created
and how a computer starts its operating system.
We can create a system as large and complex as an operating system only by
partitioning it into smaller pieces. Each of these pieces should be a well-delineated
portion of the system, with carefully defined inputs, outputs, and functions.
Obviously, not all systems have the same structure. However, many modern systems
share the goal of supporting the system components outlined in Sections