What must a kernel have?
What must be it functions?
What knowledge do I need to make my own kernel?
Can anyone please list out some common stuff required for developing a Kernel.
Thanks in advance.


There's major differences between "must" and "should". There is nothing that a kernel must have.KernelX wrote:What must a kernel have?
What must be it functions?
I'd recommend learning about various kernel types (exo-kernel, micro-kernel, monolithic kernel) and various ways of doing IPC (messages, pipes, etc); plus understanding what "real-time" means. These things tend to have a large impact on the nature of the kernel.KernelX wrote:What knowledge do I need to make my own kernel?
The Required Knowledge list might help here. I'd probably add some more to it - some sort of goal that makes the OS/kernel unique, a lot of spare time for development, and pizza.KernelX wrote:Can anyone please list out some common stuff required for developing a Kernel.
Neither a "must have" really.KernelX wrote:My list of the things what a basic 32-bit PMode kernel must have.
It could've been done already (e.g. by grub)1)Enable A_20
LDT is definitely not a must.2)GDT,LDT,IDT
What about serial consoles?3)Screen Functions(printf,cursor,clrscr,etc)
You can skip ISRs for IRQs (see polling).4)Interrupt Management(ISRS too)
You can allocate all necessary memory for the kernel at boottime, so no kernel memory manager needed.5)Memory Manager
You can left it out if you choose cooperative multitasking.6)Timer
Again, what about serial consoles? As a matter of fact, neither of my servers have any screens or keyboards, yet I'm able to communicate with them.7)Keyboard
A good bootsector doesn't exists either. Simply because it has one purpose: load the kernel. That cannot be done in good or bad way. If it's get loaded, the bootsector is functional, regardless of how it's accomplished.Thats All!!!!
Also a good bootsector.
Hope that's enough for a day of hardware work!!!