Consufing kernel space
Posted: Wed Nov 04, 2020 8:56 am
I'm currently developing a simple kernel. And my current focus is the memory management (mm) subsystem. To design a mm, I read some materials about Linux. However, I'm confused :
1. Why does Linux kernel define the NORMAL ZONE, which is directly mapped (linear address = physical address + PAGE_OFFSET)? Is it just for efficiency?
2. Does Linux kernel occupy the low 896M physical memory after initialized? If not, how can the kernel guarantee that the NORMAL ZONE is directly mapped? If so, what physical memory will be used for the user processes if the machine has memory less than 896M?
Do you have good memory management subsystem development tutorials?
Many thanks!
1. Why does Linux kernel define the NORMAL ZONE, which is directly mapped (linear address = physical address + PAGE_OFFSET)? Is it just for efficiency?
2. Does Linux kernel occupy the low 896M physical memory after initialized? If not, how can the kernel guarantee that the NORMAL ZONE is directly mapped? If so, what physical memory will be used for the user processes if the machine has memory less than 896M?
Do you have good memory management subsystem development tutorials?
Many thanks!