Previously, I established the base environment for the development. Now, what I gotta do is just make the OS (yay..) I gotta get building since I was very busy from my final!
When establishing the base environment, I actually copied memory management code from my previous OS, which was quite ugly. (if you're interested, here's the link of that code) So my goal here is to make this memory management system better and more structured. Currently, the system allocates memory by making a node, allowing very simple code and system structure. But this system assumes that all of memory in physical RAM is contiguously usable. In practice, parts of RAM is reserved by system, so the using entire RAM as contiguous memory is very dangerous. So, I will fix this problem by managing memory in unit of segments.

SegmentsManager
So, this is my plan. One "SegmentsManager" manages memory manager that controls one contiguous memory area, and the contiguous memory areas are all managed by sub-memory managers. I'm sure you'll understand everything when I implement this. It's just like the Feudalism lol. I'm kinda concerning that implementation of this might be little bit hard, but (well) we'll never know before actually doing it!