Introduction

Contents

Simple view
Kernel
Distinguished applications
Command interpreter

Simple view

An Operating System is the layer between the hardware and software, as in

An Operating System is responsible for the following functions

In addition, all operating systems come with a set of standard utilities. The utilities allow common tasks to be performed such as

Kernel

The kernel of an operating system is the part responsible for all other operations. When a computer boots up, it goes through some initialisation functions, such as checking memory. It then loads the kernel and switches control to it. The kernel then starts up all the processes needed to communiate with the user and the rest of the environment (e.g. the LAN)

The kernel is always loaded into memory, and kernel functions always run, handling processes, memory, files and devices.

The traditional structure of a kernel is a layered system, such as Unix. In this, all layers are part of the kernel, and each layer can talk to only a few other layers. Application programs and utilities live above the kernel.

The Unix kernel looks like Unix kernel

Most of the Operating Systems being built now use instead a micro kernel, which minimises the size of the kernel. Many traditional services are made into user level services. Communication being services is often by an explicit message passing mechanism.

The major micro-kernel Operating System is Mach. Many others use the concepts of Mach. Mach kernel

Sonme systems, such as Windows NT use a mixed approach NT kernel

Distinguished applications

An Operating System has been described as an ``application with no top'' (B. Meyer, ``Object-oriented Software Construction''). Other applications interact with it, through a large variety of entry points. In order to use an O/S, you need to be supplied with at least some applications that already use these entry points.

All Operating Systems come bundled with a set of ``utilities'' which do this. For example

Command interpreter

When a user interacts with an Operating System they always do so through the intermediary of a command interpreter. This responds to user input in the following ways

The command interpreter may be character-based, as in the MSDOS COMMAND.COM or the Unix shells. It may be a GUI shell, such as the Windows 3.1 Program Manager.

The interpreter may be simple, or can have the power of a full programming language. It may be imperative (as in the Unix shells), use message passing (as in AppleScript) or use visual programming metaphors such as drag-and-drop for object embedding (as in Microsoft's OLE).

It is important to distinguish between the command interpreter and the underlying Operating System. The command interpreter may only use a subset of the capabilities offered by the Operating System; it may offer them them in a clumsy or sophisticated way; it may require complex skills or be intended for novices

Home Home
Jan Newmarch (http://jan.newmarch.name)
jan@newmarch.name
Last modified: Wed Mar 5 08:28:21 EST 2003