Kernel and Types of Kernel in Operating System
Kernel: A kernel is an important
part of an operating system that manages system resources. It also acts as a
bridge between software and hardware of the computer. It
handles tasks like running programs, accessing files, and connecting to devices
like printers and keyboards.
Application:
1)
Facilitates
communication between hardware and user applications.
2)
Ensures
efficient and secure multitasking.
3) Manages system stability and prevents unauthorized resource access.
Types
of Kernels:
Monolithic
Kernel :
In
a monolithic kernel, all the operating system services run in kernel space,
which provides efficient communication between components. However, it also
means that a failure in one component can crash the entire system.
Example: Unix, Linux, Open VMS, XTS-400 etc.
Advantages
1)
Faster
process execution with no separate user space and kernel space
2)
Smaller
source and compiled forms
Disadvantages
1)
A
failure in one component can crash the entire system
2)
Not
portable, must be rewritten for new architectures
3)
Large
size and difficult to manage
Microkernel :
A
microkernel only includes the essential services in kernel space, and other
services run in user space. This approach reduces the kernel's size and
improves the system's reliability. However, it also results in slower
communication between components due to the need for inter-process
communication.
Example:
Mach, L4, AmigaOS, Minix, K42 etc.
Advantages
1)
New
services can be added without modifying the whole OS
2)
Kernel
process crashes do not necessarily cause the whole system to crash
Disadvantages
1)
More
software is required for interfacing, which can reduce system performance
2)
Complicated
process management
3)
Difficult
to fix messaging bugs
Hybrid
Kernel :
A
hybrid kernel is a combination of monolithic and microkernel architectures. It
includes a small kernel in kernel space, with other services running in user
space. This approach provides both efficiency and reliability.
Example:
Windows NT (XP, Vista, 7, 8,10), macOS, iOS, Android etc.
Advantages
1)
No
need to reboot the system for testing.
2)
Faster
integration of third-party technologies.
Disadvantages
1)
Increased
chances of bugs due to multiple interfaces.
2)
Maintenance
of modules can be difficult for some administrators, especially when dealing
with symbol differences.
0 Comments