User:Lionel/What kind of kernel should I make?: Difference between revisions

Jump to navigation Jump to search
m
Prevent this article from showing up in the tutorial categories due to the linked ratings
m (It's 80x25)
m (Prevent this article from showing up in the tutorial categories due to the linked ratings)
 
Line 16:
 
== Common Types of Kernels ==
'''Note''': These are sorted by difficulty''.
 
=== Megalithic ===
{{Rating|1|}}
{{main|Megalithic Kernel}}
A Megalithic kernel is probably the easiest because everything is in the kernel binary, which means that there is no task switching. There is also no user mode. This is probably the kind of kernel you should make if you are developing on a embedded system.
 
=== Monolithic ===
{{Rating|1|}}
{{main|Monolithic Kernel}}
Similar to a megalithic kernel; a Monolithic kernel is basically a big unchanging binary, and if there is any change, the kernel needs to be replaced again. It however has a user space. This design is fast, but can be unstable if not written correctly, as any bug can break the kernel easily. It would work well on a embedded system, but modern Monolithic Kernels, such as Linux, run on PC's as well. This is the second easiest, and is the one most people start out on, as components can be changed to create different types. Linux is a prime example of this, but most kernels will fall into this category.
 
=== Micro ===
{{Rating|2|}}
{{main|Microkernel}}
A Microkernel tries to export all functionality into user-space. It is generally very stable; if a server or daemon crashes, it can be restarted by the kernel or init/watchdog. The main thing you want to be fast here is the [[Inter-Process Communication]], as processes will need to be switched between quickly. This isn't the fastest, but probably is best when stability is required. This type of kernel is recommended for servers.
 
=== Hybrid ===
{{Rating|2|}}
{{main|Hybrid Kernel}}
 
Its two best friends, Monolithic and Micro have rubbed off on it and it acts like both. It is alone sometimes, but is happy to share with user-space. This system works quite well, as you don't have to change between modes for any privileged instruction, while code that doesn't need kernel privileges won't bring it down. However, discerning needs to be done, making it more difficult. Windows NT (XP+) and XNU(OSX) use this design.
 
 
=== Alien ===
{{Rating|4|}}
{{main|@*%*(@&%(@#}}
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu