We are developing an operating system for my personal research and practical education. For the academic purpose, this motivation is similar to MINIX, but we do not focus on theories. Our main objective is to provide knowledges on hardware-related programming. This is one of the most difficult and complex parts when we start the development of operating system from scratch.
The source code is available at the public github repository.
We do a few more things in the real mode before transitioning to the kernel. Some memory spaces are used by interrupt vector table, BIOS data, video RAM etc., and cannot be used by the kernel. In this checkpoint, we load the memory map using a BIOS call, INT 15h, that tells the kernel's memory manager where to be used.