next up previous contents
Next: Memory management Up: Software Basics Previous: Linkers

What is an Operating System?

  Without software a computer is just a pile of electronics which gives off heat. If the hardware is the heart of a computer then the software is its soul. An operating system is a collection of system programs which allow the user to run application software. The operating system abstracts the real hardware of the system and presents the system's users and its applications with a virtual machine. In a very real sense the software provides the character of the system. Most PCs can run one or more operating systems and each one can have a very different look and feel. Linux is made up a number of functionally seperate pieces which, together, comprise the operating system. One obvious part of Linux is the kernel itself but even that would be useless without libraries or shells.

In order to start understanding what an operating system is, consider what happens when you type an apparently simple command:

$ ls
Mail            c               images          perl
docs            tcl
The $ is a prompt put out by a login shell (in this case bash). This means that it is waiting for you, the user, to type some command. Typing ls  causes the keyboard driver to recognise that characters have been typed. The keyboard driver passes them to the shell which processes that command by looking for an executable image of the same name. It finds that image, in /bin/ls. Kernel services are called to pull the ls  executable image into virtual memory and start executing it. The ls  image makes calls to the file subsystem of the kernel to find out what files were available. The file system might make use of cached file system information or use the disk device driver to read this information from the disk. It might even cause a network driver to exchange information with a remote machine to find out details of files that are nfs mounted on another system. Whichever way the information is located, ls  writes that information out and the video driver displays it onto the screen.

All of the above seems rather complicated but it shows that even the most simple of commands reveals that an operating system is in fact a co-operating set of functions that together give you, the user, a coherent view of the system.

next up previous contents
Next: Memory management Up: Software Basics Previous: Linkers

David A. Rusling