I can probably share my current idea.
As some of you may know,I gone back to the bootloader (again) to add more content, and create a better envirement for the kernel. This setup *should* allow the kernel to be completely hardware independent, and even filesystem independent.
0. Designed a basic idea of what I wanted in the system. I do not plan on going to heavy design of the kernel until I actually get to the main kernel program (krnl32.exe)
Stage1.bin
1.Tthe initil bootloader. Loads and executes KRNLDR.sys. Contains routines for parsing fat12.
KRNLDR.sys
2. Switched to pmode, install initil idt, gdt, tss, paging, and goes into v86 mode.
3. Loads and executes Detect.com. This is a dos-like program used to build a table and detect hardware configuration, and memory map.
4. Depending on this information, loads the correct HAL. Loads HAL.dll.
5. Loads - depending on the partition this is booting from, other kernel mode drivers needed by the kernel, such as fat12.sys, fdisk.sys, kbrd.sys, mouse.sys, and vga.sys.
6. Switches in pmode.
7. Clears the screen, and displays options on how the kernel should boot using kbrd.sys and vga.sys drivers.
8. Load (Using fat12.sys, and fdisk.sys) krnl32.exe.
9. Execute krnl32.exe, passing all boot information to it
Krnl32.exe
1. Using info passed to it, we know where drivers are at. Initialize all kernel mode drivers (Including HAL.dll.)
2. Using vga.sys, switch video modes and clear screen.
3. Using fat12.sys, and fdisk.sys, load splash screen. Render it through vga.sys.
4. Splash screen displays. Continue initialization and loading drivers.
HAL.dll is a motherboard chipset driver. Initializing HAL.dll initializes local APIC, IRQs, and initializes new processor tables (gdt, idt, etc...), PIC, PIT, anything else that is standard among motherboards, and is not mobo specific.
-----
Thats my plan thus far. I dont know if there are any problems with it or not, but (assuming everything is there), the kernel should now be in a graphics mode displaying a splash screen (Where it loads all other drivers and kernel initialization), and is both hardware independent and filesystem independent as it interfaces through other drivers.
What do you think of this setup? (All feedback are appreciated.)
Again, please, no GRUB - It does not do what I want.
I hope this gives some ideas that may help some