Understanding the Software Layers of a Computer
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.
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.