True enough. Will you be creating a memory manager from scratch or porting an existing one? Plan to support virtual memory and paging (I guess you'll need a filesystem for that)?
Probably from scratch. Virtual memory and paging is a must.
For 3D might just be able to port Mesa over for OpenGL support unless you want to create your own API for it.
If we can port Mesa, this should work fine. Interesting idea
Is the HAL going to be it's own dll?
This was originally planned, however it would be to complex at this stage as the bootloader will require some advance topics that have not been covered yet.
For now, it is going to be treated as a static library. I plan on adding a section later to expand the bootloader, and give it more capabilities (Booting from hdd, usb, support more filesystems, error handling, memory management, and loading the kernel and hal as independent programs.
As it is a static library, it is still independent of the kernel...We will dynamically load it later similar to hal.dll however.
What will you be putting in the HAL, the HW IO, interrupts and some higher level stuff (spinlocks, semaphores)? I've just been throwing everything into the kernel, don't think I'll ever need to run it on anything else than x86.
One of our goals with the series is to encourage good coding practices and design. While we may not port the system to more then one architecture, we should still provide interfaces and abstraction layers to allow for easier portability...This is our primary reason for doing it this way.
The HAL itself will include interfaces to the basic motherboard chipset devices that the kernel may need. This, of course, includes the processor.
In other words, if the kernel reqiores any access to a device, it will NOT use port IO. Instead, it will go through the HAL.
Interesting, what systems is it incompatible with? I assumed it would work pretty much on anything now since the spec was released in 98.
Most systems these days do support it, alot of the older machines dont though. (Im referring to machines still running Win95, Win98, etc...)
If the series reader demand for this is great enough, we might just skip the vga, and use VBE... What would you like?