1.8. Operating-System Structure

1.8.1. Simple Structure

../_images/dos_struct.png

In MS-DOS, applications may bypass the operating system.

  • Operating systems such as MS-DOS and the original UNIX did not have well-defined structures.
  • There was no CPU Execution Mode (user and kernel), and so errors in applications could cause the whole system to crash.

1.8.2. Monolithic Approach

  • Functionality of the OS is invoked with simple function calls within the kernel, which is one large program.
  • Device drivers are loaded into the running kernel and become part of the kernel.
../_images/unix-mono-kernel.jpg

A monolithic kernel, such as Linux and other Unix systems.

1.8.3. Layered Approach

This approach breaks up the operating system into different layers.

  • This allows implementers to change the inner workings, and increases modularity.

  • As long as the external interface of the routines don’t change, developers have more freedom to change the inner workings of the routines.

  • With the layered approach, the bottom layer is the hardware, while the highest layer is the user interface.

    • The main advantage is simplicity of construction and debugging.
    • The main difficulty is defining the various layers.
    • The main disadvantage is that the OS tends to be less efficient than other implementations.
../_images/NTkernel.jpg

The Microsoft Windows NT Operating System. The lowest level is a monolithic kernel, but many OS components are at a higher level, but still part of the OS.

1.8.4. Microkernels

This structures the operating system by removing all nonessential portions of the kernel and implementing them as system and user level programs.

  • Generally they provide minimal process and memory management, and a communications facility.
  • Communication between components of the OS is provided by message passing.

The benefits of the microkernel are as follows:

  • Extending the operating system becomes much easier.
  • Any changes to the kernel tend to be fewer, since the kernel is smaller.
  • The microkernel also provides more security and reliability.

Main disadvantage is poor performance due to increased system overhead from message passing.

../_images/microkernel.jpg

A Microkernel architecture.

Note

  • Andrew Tanenbaum’s Minix is an example of a microkernel system. Minix was developed primarily to facilitate teaching graduate level operating system classes. Tanenbaum has authored several text books and is with VA University in Amsterdam.
  • Another well known microkernel system is Mach, which was developed at Carnegie Mellon University in the mid-1980’s. Mach was used as the low-level part of Apple OS X.