Kernel

life24

Senior member
Mar 25, 2014
283
0
76
Hi,
I need many references about Monolithic kernel , micro kernel and hybrid kernel.(with details)
Thanks
 
Last edited:

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Google it, with "filetype:pdf" at the end of your searches. You'll get many more articles, that way.

Also, understand before going in that a "hybrid" kernel doesn't really exist. A monolithic kernel with loadable modules and support for user-space drivers is still a monolithic kernel. Any monolithic kernel supporting modern hardware and software is going to be forced, by practicality, to add modularity like that.
 
Last edited:

Skaendo

Senior member
Sep 30, 2014
339
0
76
Also, understand before going in that a "hybrid" kernel doesn't really exist.
??? Windows is currently running on a hybrid kernel, by definition.
The Windows Hybrid kernel consists of:
HAL (Hardware Abstraction Layer), microkernel & kernel mode drivers.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
??? Windows is currently running on a hybrid kernel, by definition.
The Windows Hybrid kernel consists of:
HAL (Hardware Abstraction Layer), microkernel & kernel mode drivers.
Kernel-mode drivers = kernel address space = monolithic. Linux even has loadable userspace drivers, these, these days, too. Basically any OS that still exists, and isn't strictly for embedded use, has become a, "hybrid," kernel, by counting userspace modules as "not monolthic." But just as they have done that for practical reasons, they have also been keeping things in kernel-space for practical reasons.
 

Skaendo

Senior member
Sep 30, 2014
339
0
76
Kernel-mode drivers = kernel address space = monolithic. Linux even has loadable userspace drivers, these, these days, too. Basically any OS that still exists, and isn't strictly for embedded use, has become a, "hybrid," kernel, by counting userspace modules as "not monolthic." But just as they have done that for practical reasons, they have also been keeping things in kernel-space for practical reasons.
monolithic kernel + microkernel = hybrid

http://en.wikipedia.org/wiki/Monolithic_kernel
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Which is still monolithic. Look at the first paragraph of Wikipedia's article on it.
 

ControlD

Diamond Member
Apr 25, 2005
5,440
44
91
Every once and awhile I try to read that exact same wikipedia page on kernels just to remind myself how little I actually know. I need a "Kernels for Dummies" version.
 

Skaendo

Senior member
Sep 30, 2014
339
0
76
NT-based Windows is classified as a hybrid kernel (or a macrokernelhttp://en.wikipedia.org/wiki/Hybrid_kernel#cite_note-Microsoft_2007-2) rather than a monolithic kernel because the emulation subsystems run in user-mode server processes, rather than in kernel mode as on a monolithic kernel, and further because of the large number of design goals which resemble design goals of Mach (in particular the separation of OS personalities from a general kernel design). Conversely, the reason NT is not a microkernel system is because most of the system components run in the same address space as the kernel, as would be the case with a monolithic design (in a traditional monolithic design, there would not be a microkernel per se, but the kernel would implement broadly similar functionality to NT's microkernel and kernel-mode subsystems).
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
NT-based Windows is classified as a hybrid kernel (or a macrokernelhttp://en.wikipedia.org/wiki/Hybrid_kernel#cite_note-Microsoft_2007-2) rather than a monolithic kernel because the emulation subsystems run in user-mode server processes, rather than in kernel mode as on a monolithic kernel, and further because of the large number of design goals which resemble design goals of Mach (in particular the separation of OS personalities from a general kernel design). Conversely, the reason NT is not a microkernel system is because most of the system components run in the same address space as the kernel, as would be the case with a monolithic design (in a traditional monolithic design, there would not be a microkernel per se, but the kernel would implement broadly similar functionality to NT's microkernel and kernel-mode subsystems).
So why isn't, say, Linux, considered one? User space file and device drivers have existed and been in use for years, now. The bolded defines it as monolithic. Resembling this and having this or that philosophy matter not. For practical reasons, neither a pure monolithic, nor a pure microkernel, are going to be ideal. Some code's gonna crash, and some code needs to stay away from the kernel address space for security reasons. Hybrid was just MS' name for, "we need to get work done," an opposite objective of Hurd :).
 

Skaendo

Senior member
Sep 30, 2014
339
0
76
So why isn't, say, Linux, considered one? User space file and device drivers have existed and been in use for years, now. The bolded defines it as monolithic. Resembling this and having this or that philosophy matter not. For practical reasons, neither a pure monolithic, nor a pure microkernel, are going to be ideal. Some code's gonna crash, and some code needs to stay away from the kernel address space for security reasons. Hybrid was just MS' name for, "we need to get work done," an opposite objective of Hurd :).
Linux is a monolithic kernel. Device drivers and kernel extensions run in kernel space (ring 0 in many CPU architectures), with full access to the hardware, although some exceptions run in user space, for example filesystems based on FUSE. The graphics system most people use with Linux does not run within the kernel, in contrast to that found in Microsoft Windows. Unlike standard monolithic kernels, device drivers are easily configured as modules, and loaded or unloaded while running the system. Also unlike standard monolithic kernels, device drivers can be pre-empted under certain conditions. This latter feature was added to handle hardware interrupts correctly, and to improve support for symmetric multiprocessing.[citation needed] By choice, the Linux kernel has no Binary Kernel Interface.[45]

The hardware is also incorporated into the file hierarchy. Device drivers interface to user applications via an entry in the /dev[46] and/or /sys directories. Process information as well is mapped to the file system through the /proc directory.[46]

Linux supports true preemptive multitasking (both in user mode and kernel mode), virtual memory, shared libraries, demand loading, shared copy-on-write executables (via KSM), memory management, the Internet protocol suite, and threading.

*from Wikipedia
http://en.wikipedia.org/wiki/Linux_kernel
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Exactly: Linux has exceptions, but doesn't take on a different name. Just as the Microsoft guys couldn't practically do it as a pure microkernel, neither could Linux do it as a pure monlithic. The difference is that one is exclusive (micro), and the other inclusive (monolithic). Adding user-space functionality does not remove its monolithic nature; only removing the kernel-space functionality would.
 

Skaendo

Senior member
Sep 30, 2014
339
0
76
Exactly: Linux has exceptions, but doesn't take on a different name. Just as the Microsoft guys couldn't practically do it as a pure microkernel, neither could Linux do it as a pure monlithic. The difference is that one is exclusive (micro), and the other inclusive (monolithic). Adding user-space functionality does not remove its monolithic nature; only removing the kernel-space functionality would.
But the exception listed states 'for example filesystems based on FUSE'. Normally Linux runs on the ext filesystem.

*and the kernel would be compiled different between ext and fuse to include the exceptions.
 
Last edited: