Monolithic Structure of Operating System
The monolithic operating system is a very basic operating system in which file management, memory management, device management, and process management are directly controlled within the kernel. The kernel can access all the resources present in the system. In monolithic systems, each component of the operating system is contained within the kernel. Operating systems that use monolithic architecture were first time used in the 1970s.
The monolithic operating system is also known as the monolithic kernel. This is an old operating system used to perform small tasks like batch processing and time-sharing tasks in banks. The monolithic kernel acts as a virtual machine that controls all hardware parts.
It is different from a microkernel, which has limited tasks. A microkernel is divided into two parts, kernel space, and user space. Both parts communicate with each other through IPC (Inter-process communication). Microkernel's advantage is that if one server fails, then the other server takes control of it.
A monolithic kernel is an operating system architecture where the entire operating system is working in kernel space. The monolithic model differs from other operating system architectures, such as the microkernel architecture, in that it alone defines a high-level virtual interface over computer hardware.
A set of primitives or system calls implement all operating system services such as process management, concurrency, and memory management. Device drivers can be added to the kernel as modules.
Advantages of Monolithic Kernel
Here are the following advantages of a monolithic kernel, such as:
Disadvantages of Monolithic Kernel
Here are some disadvantages of the monolithic kernel, such as:
Monolithic System Architecture
A monolithic design of the operating system architecture makes no special accommodation for the special nature of the operating system. Although the design follows the separation of concerns, no attempt is made to restrict the privileges granted to the individual parts of the operating system. The entire operating system executes with maximum privileges. The communication overhead inside the monolithic operating system is the same as that of any other software, considered relatively low.
CP/M and DOS are simple examples of monolithic operating systems. Both CP/M and DOS are operating systems that share a single address space with the applications.
Advantages of Monolithic Architecture:
Monolithic architecture has the following advantages, such as:
Disadvantages of Monolithic Architecture:
Here are some disadvantages of monolithic architecture:
Modular Monolithic Systems
Modular operating systems and most modern monolithic operating systems such as OS-9 OpenVMS, Linux, BSD, SunOS, AIX, and MULTICS can dynamically load (and unload) executable modules at runtime.
This modularity of the operating system is at the binary level and not at the architecture level. Modular monolithic operating systems are not confused with the architectural level of modularity inherent in server-client operating systems (and its derivatives sometimes marketed as the hybrid kernel) that use microkernels and servers.
Practically, dynamically loading modules is simply a more flexible way of handling the operating system image at runtime instead of rebooting with a different operating system image. The modules allow easy extension of the operating systems' capabilities as required. Dynamically loadable modules incur a small overhead when compared to building the module into the operating system image.
However, in some cases, loading modules dynamically helps keep the amount of code running in kernel space to a minimum. For example, to minimize operating system footprint for embedded devices or those with limited hardware resources. Namely, an unloaded module need not be stored in scarce random access memory.
Limitations of Monolithic System
The monolithic operating system has the following limitations, such as:
Features of Monolithic System
The monolithic operating system provides the following features to the users, such as:
Difference between Monolithic Kernel and Microkernel
A kernel is the core part of an operating system, and it manages the system resources. A kernel is like a bridge between the application and hardware of the computer. The kernel can be classified further into two categories, Microkernel and Monolithic Kernel.
The microkernel is a type of kernel that allows customization of the operating system. It runs on privileged mode and provides low-level address space management and Inter-Process Communication (IPC). Moreover, OS services such as file system, virtual memory manager, and CPU scheduler are on top of the microkernel. Each service has its own address space to make them secure. Besides, the applications also have their own address spaces. Therefore, there is protection among applications, OS Services, and kernels.
A monolithic kernel is another classification of the kernel. In monolithic kernel-based systems, each application has its own address space. Like microkernel, this one also manages system resources between application and hardware, but user services and kernel services are implemented under the same address space. It increases the size of the kernel, thus increases the size of the operating system as well.
This kernel provides CPU scheduling, memory management, file management, and other system functions through system calls. As both services are implemented under the same address space, this makes operating system execution faster. Below are some more differences between Microkernel and Monolithic kernel, such as: