tags: os operating-system architecture is_child_of: [operating-systems]]

Operating system architectures

  1. Monolithic
  2. Layered

Monolithic

Monolithic architecture

It is a single executable program comprising all the operating system functionalities.

It contains of different procedures linked togther to build a single executable that runs in kernel mode. If we see, it is a big kernel handles everything of an operating system.

User programs directly run on top of it. It becomes direct to access system resources as there is no layer.

For example, Linux is a monolithic operating system.

However, some of modern monolithic operating systems have modular code which makes it quite simple to design the system. Moreover, these modules can be loaded at run time as not to make the boot process heavy.

Layered

Layered architecture

Operating system responsibilities are divided among different layers solely responsible for their specific set of tasks.

For instance, layer for process management, IO, file management etc.

Microkernel

Micro kernel architecture

It basic idea about this design is that to put very less in kernel to make system reliable and robust.

The operating system is divided in small modules such that the very less is given to the kernel and most of the activities happen in user mode.

A kernel is reponsible for the mechanism that is, it is reponsible for doing the work (lower level work) and the policies or rules of how to do things will be decided in user mode.

So mechanism and policy are decoupled. Mechanism will be taken care by kernel and policies will reside in user mode.

For instance, priority is the basic process scheduling algorithm. The priorities can be assigned in the user mode and the kernel can run process by looking their priorities.