[Home]
[Edit this page]
[Recent Changes]
[Special Pages]
[Help]
OSKernel
Definition of a Kernel
The Kernel is loaded when the operating system starts up. It is the core library of functions the OS "knows".
In the Kernel there are the functions and streams to communicate with the systems hardware resources, such as the graphic device or the sound device.
The kernel only contains basic functions to reach these devices, there are no drivers included. The drivers are used on higher software-level, according to the API of the Operating System.
Actually, this isn't completely correct. The kernel itself does not need to know anything about the hardware it runs on. It's even more true that the kernel needs no concept of what is a graphic device or a sound device.
The difference is of course, in the fact that there are two different methodologies when designing a kernel: microkernels and monolithic kernels.
The monolithic kernel is the design that is used in operating systems like Windows and Linux. In this case, the kernel is a set of tightly integrated packages that understand and handle the complete hardware of the machine.
An error in the monolithic kernel will bring the whole system crashing down, because the integration level is very high. It's potentially difficult to distinguish and manage smaller parts separately.
But, there is a second approach to kernel design called microkernel. A microkernel on the other hand takes a different approach. Microkernels usualy provide only minimal services like defining memory address spaces, interprocess comunication methods and process and thread management. All the other features such as hardware management or IO locking and sharing are implemented as processes running independantly of the microkernel.
A microkernel doesn't suffer from the same ailments like monolithic kernels. If a certain sub-process of the kernel crashes, it's still possible to save the whole system from a crash by restarting the service which caused the error.
It was claimed that microkernels would revolutionize the way operating systems are designed, alas no such thing has happened. Apparently the improvements weren't significant enough to force the majority of operating systems to use this approach. There are only several operating systems today that use the microkernel approach: Mach microkernel (used in OS X if I'm not mistaken), BeOS and AIX.
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
OSKernel
Definition of a Kernel
The Kernel is loaded when the operating system starts up. It is the core library of functions the OS "knows".
In the Kernel there are the functions and streams to communicate with the systems hardware resources, such as the graphic device or the sound device.
The kernel only contains basic functions to reach these devices, there are no drivers included. The drivers are used on higher software-level, according to the API of the Operating System.
Actually, this isn't completely correct. The kernel itself does not need to know anything about the hardware it runs on. It's even more true that the kernel needs no concept of what is a graphic device or a sound device.
The difference is of course, in the fact that there are two different methodologies when designing a kernel: microkernels and monolithic kernels.
The monolithic kernel is the design that is used in operating systems like Windows and Linux. In this case, the kernel is a set of tightly integrated packages that understand and handle the complete hardware of the machine.
An error in the monolithic kernel will bring the whole system crashing down, because the integration level is very high. It's potentially difficult to distinguish and manage smaller parts separately.
But, there is a second approach to kernel design called microkernel. A microkernel on the other hand takes a different approach. Microkernels usualy provide only minimal services like defining memory address spaces, interprocess comunication methods and process and thread management. All the other features such as hardware management or IO locking and sharing are implemented as processes running independantly of the microkernel.
A microkernel doesn't suffer from the same ailments like monolithic kernels. If a certain sub-process of the kernel crashes, it's still possible to save the whole system from a crash by restarting the service which caused the error.
It was claimed that microkernels would revolutionize the way operating systems are designed, alas no such thing has happened. Apparently the improvements weren't significant enough to force the majority of operating systems to use this approach. There are only several operating systems today that use the microkernel approach: Mach microkernel (used in OS X if I'm not mistaken), BeOS and AIX.
[Edit this page] [Page history] [What links here] [Discuss this topic] [Printer Friendly]
