Understanding the Software Layers of a Computer



Permission is granted for the below article to forward,
reprint, distribute, use for ezine, newsletter, website,
offer as free bonus or part of a product for sale as long
as no changes are made and the byline, copyright, and the
resource box below is included.

Understanding the Software Layers of a Computer

By Stephen Bucaro

You're typing in a word processor and you decide it would
be nice to have a hard copy. You select File | Print in
the menu and the printer comes to life, feeding out a copy
of your document on paper. It seems like a simple process,
but in reality your request passed through many layers of
software before reaching your printer.

Although you requested the print through a menu of your
word processing application, that application did not
contact the printer directly. Instead, the aplication made
a request to the computer's operating system. Remember,
today's computers are multi-tasking. That means they can
perform more than one task at a time. The operating system
mediates the priority of multiple tasks requesting to use
a hardware device.

The operating system did not contact the printer directly.
Remember, today's computers can have a multitude of
different hardware attached. There are thousands of
different kinds of printers, and a computer may have
several printers attached. Instead, the operating system
communicates with a piece of software called a "device
driver", specific to the printer that you selected.

The device driver did not contact the printer directly.
Instead, the device driver contacted a program called the
BIOS (Basic Input/Output System). Whereas all the programs
up to this point had been loaded from the computers hard
drive, the BIOS was loaded from a memory chip. Finally,
the BIOS communicates directly with the electronic
circuits of the printer.

[Application][Operating System][Device Driver]
[BIOS][Hardware]

The above explanation describes the common software layers
of a computer. Each of the software layers described above
may itself consist of many layers. An application may
communicate with the operating system through a piece of
software called a DLL (Dynamic Link Library).

The operating system especially is constructed of many
layers. Sometimes the operating system is described to be
like an onion. At the center of the onion is the operating
systems kernal. Only other layers of the operating system
are allowed to communicate directly with the kernal. The
outer layer of the operating system consists of programs
called services which applications can communicate with
directly.

It is possible to communicate with the printer directly
(well almost). Most operating systems have a command line
interface that lets users communicate more directly with
the operating system and with hardware devices through the
BIOS. The most familiar command line interface is the DOS
Command Prompt.

At the DOS command prompt you can type "print" followed by
the name of a document and a printed copy will be generated.
But don't expect fancy fonts or formatting. Although the
command line interface can be very powerful for some tasks,
for other tasks it is very crude.

When you first start your computer, it has no software
loaded. You could say your computer is "brain dead". It
doesn't even know how to use the hard disk drive to load
the operating system.

The BIOS is non-volatile memory built into the computers
motherboard. Non-volatile means that the instructions in
the memory are not lost when you turn the power off.

When you first start your computer, it is hard-wired to
start reading the first instruction in the BIOS. The BIOS
is not usually all in a single chip. As the BIOS starts,
it looks for other parts of the BIOS that reside in chips
on expansion cards. From these instructions, it learns how
to check itself out (Power-on Self Test) and how to
locate and load the operating system. The computer "BOOTS"
(pulls itself up by its bootstraps).

The last thing the BIOS does is locate the drive containing
the operating system and begin loading the operating system.
Because the hard disk has vastly more storage capacity than
a BIOS chip, the operating system software can be large and
powerful. As the operating system loads, it begins loading
device drivers and configuring the hardware.

In the early days, BIOS programs where stored in ROM (read
only memory). Todays computers usually store BIOS programs
in a type of memory, called "Flash memory" that can be
rewritten. This allows you to reprogram the BIOS to fix
bugs, or to update it. For example, You might download a
BIOS update program from the Web and run it from a floppy disk.

The important thing to understand is that your computer has
layers of software. You should understand where each layer
resides in the path from user to hardware. You should now
understand that when you dial out with your web browser,
the request is passed to the operating system, which passes
it to the modem driver, which communicates with a BIOS on
the modem. That BIOS is the program that actually works the
electronics of your modem.

Resource Box:

Copyright(C)2004 Bucaro TecHelp. To learn how to maintain
your computer and use it more effectively to design a Web
site and make money on the Web visit http://bucarotechelp.com
To subscribe to Bucaro TecHelp Newsletter Send a blank
email to mailto:bucarotechelp-subscribe@topica.com

About the Author

None