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

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 12:
{{main|I/O Ports}}
You need I/O to communicate, how else do you control the HDD, tell the user what your doing or get input from the user?
 
Surprisingly, on some systems, you can communicate via memory spaces. For example: 0xB8000 is a memory space where you write characters while in 80x24 text mode..
 
== Common Types of Kernels ==
Line 18 ⟶ 20:
{{Rating|1}}
{{main|Megalithic Kernel}}
It only keeps to itself, not sharing anything with user-mode. 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}}
It keepsSimilar to itselfa mostmegalithic ofkernel; the time, but its mother is making it play with user-mode. Aa 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}}
It is very social, and loves to play almost the whole day with user-mode. A Microkernel tries to export all functionality into user-space. It is generally very stable, as; 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 ===
Line 34 ⟶ 36:
 
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|@*%*(@&%(@#}}
 
This is the essentially the "default" case in a switch function. An alien kernel is no different than any other one. It's just a funny name. An alien kernel is a kernel that has no "mold" to fit in. Something completely different.
43

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu