On Sun, Aug 3, 2008 at 9:53 PM, Zachary Gorden
<drakeka...@gmail.com> wrote:
I actually have a similar question, and this pertains to the current mapping of the kernel in memory. Because we don't have anything like ntldr or freeldr, the kernel needs to manually set up its page tables first, kinda like how Linux does it. If we're following convention, I'll need to remap all of the addresses to their appropriate location in the upper 2GB.
So my question basically is, is there a current map of what the kernel looks like in memory?
This is material is definitely better suited for a separate thread, (which I've taken care of). I'll answer with as much as I expect is true...
The kernel has no well-defined structure in memory. The AOT outputs
things in a specific order (undocumented, but with research it wouldn't be hard to determine), into a brute-forced binary that GRUB loads
into memory and then lets us have our way with ourselves.
So without a custom loader, or some sort of hacked implementation in
order to work with another loader, we currently do not have support for
this. Frankly, I don't think you can setup page tables without having
something tied to an interrupt when paging is needed to be done - which
brings us to identifying and accessing disk space. Due to the
nano-kernel-esque design we are shooting for, (as far as modularity), I
don't think this is an option for us right now.