Some kernel dev questions from a newbie
Posted: Mon Aug 25, 2003 11:00 pm
I'm a newbie to OS programming and want to develop a kernel using C and ASM. I have already written a FAT12 bootloader which loads a secondary, the secondary jumps to p-mode etc. Now I would like to know where exactly the boot loader ends its job and where the kernel start its job.(or rather what exactly are the jobs of the kernel).
The target architecture is intel 486/Pentium and above. I do not know its architecture in detail i.e. i can't understand the GDT,IDT etc and how to load them up as well as how they work etc. also how do i determine the processor? What about the memory layout of a PC which is just booted-up? is there any relevant information available anywhere or can i just use the memory without caring about overwriting any important info? I would reaally appreciate any help with these.Thanx in advance to all you folks.
And by the way i noticed in <a href="http://osdev.neopages.net/tutorials/brunmar/tutorial_02.php">Gregor Brunmar's Pmode tutorial</a> that he jumps to pmode without enabling the A20 line. is it necessary that it is enabled first or can i do the same?
And what about this invalid opcode stuff. If i execute a CPUID instruction the literature says that it would give me a "INVALID OPCODE" error on unsupported processors. How do i check this error?
The target architecture is intel 486/Pentium and above. I do not know its architecture in detail i.e. i can't understand the GDT,IDT etc and how to load them up as well as how they work etc. also how do i determine the processor? What about the memory layout of a PC which is just booted-up? is there any relevant information available anywhere or can i just use the memory without caring about overwriting any important info? I would reaally appreciate any help with these.Thanx in advance to all you folks.
And by the way i noticed in <a href="http://osdev.neopages.net/tutorials/brunmar/tutorial_02.php">Gregor Brunmar's Pmode tutorial</a> that he jumps to pmode without enabling the A20 line. is it necessary that it is enabled first or can i do the same?
And what about this invalid opcode stuff. If i execute a CPUID instruction the literature says that it would give me a "INVALID OPCODE" error on unsupported processors. How do i check this error?