By now, you can probably see that the term operating system
covers many roles and functions. That is the case, at least in part, because of
the myriad designs and uses of computers. Computers are present within
toasters, cars, ships, spacecraft, homes, and businesses. They are the basis
for game machines, music players, cable TV tuners, and industrial control
systems. Although computers have a relatively short history, they have evolved
rapidly. Computing started as an experiment to determine what could be done and
quickly moved to fixed-purpose systems for military uses, such as code breaking
and trajectory plotting, and governmental uses, such as census calculation.
Those early computers evolved into general-purpose, multifunction mainframes,
and that’s when operating systems were born. In the 1960s, Moore’s Law
predicted that the number of transistors on an integrated circuit would double
every eighteen months, and that prediction has held true. Computers gained in functionality
and shrunk in size, leading to a vast number of uses and a vast number and
variety of operating systems. (See Chapter 20 for more details on the history
of operating systems.)
How, then, can we define what an operating system is? In
general, we have no completely adequate definition of an operating system.
Operating systems exist because they offer a reasonable way to solve the
problem of creating a usable computing system. The fundamental goal of computer
systems is to
execute user programs and to make solving user problems
easier. Computer hardware is constructed toward this goal. Since bare hardware
alone is not particularly easy to use, application programs are developed.
These programs require certain common operations, such as those controlling the
I/O devices.
The common functions of controlling and allocating resources
are then brought together into one piece of software: the operating system.
In addition,wehave no universally accepted definition of
what is part of the operating system. A simple viewpoint is that it includes
everything a vendor ships when you order “the operating system.” The features
included, however, vary greatly across systems. Some systems take up less than
a megabyte of space and lack even a full-screen editor, whereas others require
gigabytes of space and are based entirely on graphical windowing systems.Amore
common definition, and the one that we usually follow, is that the operating
system is the one program running at all times on the computer—usually called the
kernel. (Along with the kernel, there are two other types of programs: system
programs, which are associatedwith the operating systembut are not necessarily
part of the kernel, and application programs, which include all programs not
associated with the operation of the system.)
The matter of what constitutes an operating system became
increasingly important as personal computers became more widespread and
operating systems grew increasingly sophisticated. In 1998, the United States
Department of Justice filed suit against Microsoft, in essence claiming that
Microsoft included too much functionality in its operating systems and thus
prevented application vendors from competing. (For example, a Web browser was
an integral part of the operating systems.) As a result, Microsoft was found
guilty of using its operating-system monopoly to limit competition.
Today, however, if we look at operating systems for mobile
devices, we see that once again the number of features constituting the
operating system is increasing. Mobile operating systems often include not only
a core kernel but also middleware—a set of software frameworks that provide
additional services to application developers. For example, each of the two
most prominent mobile operating systems—Apple’s iOS and Google’s
Android—features a core kernel alongwithmiddleware that supportsdatabases,multimedia,
and graphics (to name a only few).