hi,
we are not annoyed, just giving you the RIGHT answers!
anyway, after you have explained your situatuion here is some advice and info
visit a library near you ask for the system programming section under computing or computer science.
Then you can get the Intel docs, seach this forum with 'Intel Manaul' or 'Intel Docs'
This is how I see the kernel:-
The kernel is just a libray of fuctions that provide users with a much easier to use and more useful machine!
That is basically what the Kernel does, so if you right one that just accepts input from the keyboad and prints it to the screen, that is what your KERNEL is designed for! Its up to you what you put in the kernel!
The big question is 'HOW DO I PUT XXXXX IN A KERNEL'?
First place to start learning would be with the docs for the platform you will support in the os ie download docs on KEYBOARDS,the PIC, FLOPPY DRIVE etc for how to access the registers and program them directly.
For the Kernel design, you will need BOOKS ( I KNOW YOU HAVE TOLD US NOT TO PULL THAT WORD OUT OF OUR BAGS AGAIN!)
Kernels are usually designed as Monolithic or MICRO, of course there are other types of design.
Monolithic kernel: - EVERYTHING THE KERNEL DOES IS COMPILED TOGETHER into a single BINARY
Micro Kernel: - The kernel is divided into parts that perform one specific task. each section communicate with one another (only when necessary) by a mechanisim called INTERPROCESS COMMUNICATION AND SYNCHRONISATION
this can be done with SEMAPHORES, MESSAGE PASSING, MONITORS etc (Use google to seach for these keywords combined with operating system).
In any design, the kernel is the one that
Monitors the programs(processes) in execution
allocates resources(MEMORY,FILE BLOCKS,DMA etc) to the processes as they demand them
Handles the scheduling of processes based on some policy(ies)
Protectes one process from another
controls the hardware.
Your kernel could support
single process :- only one process runs at a time and is the only one loaded in memory
multi process: - more than one process is running at any particlar time T, but there are many such programs in memory that can run, they only need to be given the CPU to do so. this is achieved by switching rapidly between these tasks to give the user(s) the impression that all the programs are running simultaneously at the same time! (this is where the SCHEDULING POLICES AND TASK SWITCHING FUNCTIONS OF THE KERNEL COME INTO PLAY)
Talking about kernels can fill VOLUMES, as you know.
So Tell us what exactly you need.
hope i have not CONFUSED you any Further!
