Page 1 of 1

Need help for kernel

Posted: Sun Jul 03, 2005 11:00 pm
by UCoE
hi, i'm very new at this forum n i have a project of making a kernel and then later maybe making it into an OS::::and i've gotta do it pretty fast. i know the assembly language quite a bit, i have done OS at college level...
So what i initially wanna know is a checklist sort of a thing which specifies the various things to be code/implemented/taken care of etc. (i hope u get my point)..like for example..
1. A bootstrap loader
2. File management
3. Memory management
...
...
etc. so ne1 plz lemme know exactly all things required so i can get to know all the things involved

Re: Need help for kernel

Posted: Thu Jul 07, 2005 11:00 pm
by earlz
are u going to be using an already made filesystem(fat12,16,32 whatever linux's filesystem name is ect) or are u going to be developing one yourself
what about a command prompt/shell/console
what about built in stuff that lets u communicate with the kernel from an app(interrupts, memory addresses ect)

Re: Need help for kernel

Posted: Sun Jul 10, 2005 11:00 pm
by smiddy
UCoE,

It depends on your requirements. What are your requirements and I'll tell you specifically what you need.

Re: Need help for kernel

Posted: Wed Jul 13, 2005 11:00 pm
by aggieben
You need a bootstrap loader and some basic interrupt handlers. Probably the next thing to work on after that is designing your memory space and policies for memory management. Do you want to use a Flat model like VxWorks, or segmented like Linux? What allocation algorithms and data structures will you use?

After you decide on a memory model, you probably want to define your idea of a process/thread/whatever --- the basic computational unit. Once that unit is defined, the rest of the processing model will fall into place, like scheduling, priorities, pre-emption, more complete interrupt handling, etc, etc.

Once your computational model is solidified, then you can move on to other items like:
- interactivity (shell, GUI, whatever)
- filesystem/storage support
- other device support
- more sophisticated OS things like multitasking, networking, security (security should be considered from the start, really), exception handling, IPC, signals, useful error messaging, bug tracking, getting a compilier/linker/loader to be self-hosting (probably one of the hardest things).

One last thing to remember: you'll find that many things are co-dependant, which means you'll have to work on different parts a little bit at a time. In other words, developing a new OS from scratch is not a linear process.