I should before implementing the memory manager (just bare kernel allocators for now), to move to the higher half memory, and to enable C++.
I have to move to the higher half now because doing so later will be harder. Also I really have to enable C++ so I'd write a decent infrastructure of the HAL (H/W Abstraction Layer) below the memory manager, so It becomes much easier to develop and maintain the memory manager. Or if it is not a full HAL, it just can encapsulate the annoying-to-handle bit-fields of the flags in the Page Table Entries of the Page Table.
What I should do exactly now isA is to read those links and see how I can integrate them into my code. The integration would destroy half of my code since it requires paging to be enabled from the very start; which I don't do. I still don't get what the status of the GDT if the paging was applied so early, I know it still have to be there, because at least of the IDT, if it wasn't for Call Gates or TSS.
About the C++ thing, I am thinking of integrating libgcc/libsupc++. (see http://www.osdev.org/osfaq2/index.php/Doing%20a%20kernel%20in%20C%2B%2B section: Full-runtime support). It is because I want to enable Full-runtime support so I don't have to worry about it later.
It's some painful tasks to do, but we've gotta do them sometime :(. I hope I get them done some time soon, because they are just standing in my throat and I am almost choking :S.