Wake-Up Call
When the power to
a computer is turned on, the first program that runs is usually a
set of instructions kept in the computer's Read-Only Memory
(ROM) that examines the system hardware to make sure everything is
functioning properly. This Power-On Self Test (POST) checks
the CPU, memory, and basic input-output systems for errors and
stores the result in a special memory location. Once the POST has
successfully completed, the software loaded in ROM (sometimes called
firmware) will begin to activate the computer's disk drives. In most
modern computers, when the computer activates the hard disk drive,
it finds the first piece of the operating system, the bootstrap
loader.
The bootstrap loader is a small program that has a single
function: It loads the operating system into memory and allows it to
begin operation. In the most basic form, the bootstrap loader sets
up the small driver programs that interface with and control the
various hardware sub-systems of the computer. It sets up the
divisions of memory that hold the operating system, user information
and applications. It establishes the data structures that will hold
the myriad signals, flags and semaphores that are used to
communicate within and between the sub-systems and applications of
the computer. Finally it turns control of the computer over to the
operating system.
The operating system's tasks, in the most general sense, fall
into six categories:
- Processor management
- Memory management
- Device management
- Storage management
- Application Interface
- User Interface
While there are some who argue that an
operating system should do more than these six tasks, and some
operating system vendors that build many more utility programs and
auxiliary functions into their operating systems, these six tasks
define the core of essentially all operating systems. Let's look at
the tools the operating system uses to perform each of these
functions.