I am a new to Osdevelopment.I have no idea where to start with, I know C.
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.
Simple Kernel???
Re: Simple Kernel???
Hi,
This stuff is all on the wiki and has been asked on the forums (recently) too. Start with Getting Started and work from there. If you have programmed with C you will have used a libc and API calls. Think about the support you get from the host OS when you are developping applications. If you are writing an OS, that's the sort of framework your application developpers will expect you to provide.
Cheers,
Adam
This stuff is all on the wiki and has been asked on the forums (recently) too. Start with Getting Started and work from there. If you have programmed with C you will have used a libc and API calls. Think about the support you get from the host OS when you are developping applications. If you are writing an OS, that's the sort of framework your application developpers will expect you to provide.
Cheers,
Adam
Re: Simple Kernel???
Oh yea! Got it.Going through the site.
Thank You, looks these forum are a good place to get through.
Thank You, looks these forum are a good place to get through.
Re: Simple Kernel???
Hi,
A kernel should have a description that describes what type of kernel it is. For example, an exo-kernel is very different to a monolithic kernel (with radically different functions).
Cheers,
Brendan
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?
A kernel should have a description that describes what type of kernel it is. For example, an exo-kernel is very different to a monolithic kernel (with radically different 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.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Simple Kernel???
My list of the things what a basic 32-bit PMode kernel must have.
1)Enable A_20
2)GDT,LDT,IDT
3)Screen Functions(printf,cursor,clrscr,etc)
4)Interrupt Management(ISRS too)
5)Memory Manager
6)Timer
7)Keyboard
Thats All!!!!
Also a good bootsector.
Hope that's enough for a day of hardware work!!!
1)Enable A_20
2)GDT,LDT,IDT
3)Screen Functions(printf,cursor,clrscr,etc)
4)Interrupt Management(ISRS too)
5)Memory Manager
6)Timer
7)Keyboard
Thats All!!!!
Also a good bootsector.
Hope that's enough for a day of hardware work!!!
Re: Simple 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!!!
I think you should spend more time on theory first. Read Tanenbaum's book at least (focusing on theory, not implementation details).
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: Simple Kernel???
Are you Yashas?