Operating System Architecture
1. MONOLITHIC SYSTEMS
- The core software components of an operating system are collectively known as the kernel.
- The kernel has unrestricted access to all of the resources on the system.
- In monolithic systems, each component of the operating system was contained within the kernel, could communicate directly with any other component, and had unrestricted system access.
- While this made the operating system very efficient, it also meant that errors were more difficult to isolate, and there was a high risk of damage due to erroneous or malicious code.
2. Layered OS architecture
- The layered structure approach breaks up the operating system into different layers and retains much more control on the system.
- The bottom layer (layer 0) is the hardware, and the topmost
layer (layer N) is the user interface. These layers are so designed that each
layer uses the functions of the lower-level layers only.
- It simplifies the debugging process as if lower-level layers are debugged, and an error occurs during debugging. The error must be on that layer only as the lower-level layers have already been debugged.
- The modularity of layered operating systems allows the implementation of each layer to be modified without requiring any modification to adjacent layers. Although this modular approach imposes structure and consistency on the operating system, simplifying debugging and modification, a service request from a user process may pass through many layers of system software before it is serviced and performance compares unfavorably to that of a monolithic kernel.
- Also, because all layers still have unrestricted access to the system, the kernel is
still susceptible to errant or malicious code.
- Many of today’s operating systems, including Microsoft Windows and Linux, implement some level of layering.
3. A MICROKERNEL
- A micro kernel architecture includes only a very small number of services within the kernel in an attempt to keep it small and scalable.
- The services typically include low-level memory management, inter-process communication and basic process synchronization to enable processes to cooperate. communication and basic process synchronization to enable processes to cooperate.
- In microkernel designs, most operating system components, such as process management and device management, execute outside the kernel with a lower level of system access.
- Micro kernels are highly modular, making them extensible, portable and scalable. Operating system components outside the kernel can fail without causing the operating system to fall over.
- Once again, the downside is an increased level of inter-module communication which can degrade system performance.
- The layered structure approach breaks up the operating system into different layers and retains much more control on the system.
- The bottom layer (layer 0) is the hardware, and the topmost layer (layer N) is the user interface. These layers are so designed that each layer uses the functions of the lower-level layers only.
- It simplifies the debugging process as if lower-level layers are debugged, and an error occurs during debugging. The error must be on that layer only as the lower-level layers have already been debugged.
- The modularity of layered operating systems allows the implementation of each layer to be modified without requiring any modification to adjacent layers. Although this modular approach imposes structure and consistency on the operating system, simplifying debugging and modification, a service request from a user process may pass through many layers of system software before it is serviced and performance compares unfavorably to that of a monolithic kernel.
- Also, because all layers still have unrestricted access to the system, the kernel is still susceptible to errant or malicious code.
- Many of today’s operating systems, including Microsoft Windows and Linux, implement some level of layering.
3. A MICROKERNEL
- A micro kernel architecture includes only a very small number of services within the kernel in an attempt to keep it small and scalable.
- The services typically include low-level memory management, inter-process communication and basic process synchronization to enable processes to cooperate. communication and basic process synchronization to enable processes to cooperate.
- In microkernel designs, most operating system components, such as process management and device management, execute outside the kernel with a lower level of system access.
- Micro kernels are highly modular, making them extensible, portable and scalable. Operating system components outside the kernel can fail without causing the operating system to fall over.
- Once again, the downside is an increased level of inter-module communication which can degrade system performance.