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
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
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.
Sonme systems, such as Windows NT use a mixed approach
All Operating Systems come bundled with a set of ``utilities'' which do this. For example
COMMAND.COM
to supply a
command line prompt, and a set of utilities
xdm
). Others
supply file managers, session managers, etc which can be used
to provide a variety of interfaces to the underlying Unix/POSIX
system.
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