Linux translates flat virtual address to physical address by MMU. In the virtual address space of Linux, there are many types of segments:
- Kernel space
- User stack
- Memory mapping region
- User heap
- Bss segment
- Data segment
- Text segment
How does Linux maintain these segments (aka sections)? Where are the base addresses and sizes of these segments stored? Registers, GDT/LDT, mm_struct
or other data structures in kernel?
Appreciate any help.