The Linux kernel divides each physical memory node into a different management area zone. Why is this?

Because actual computer architectures have many hardware constraints, this limits the ways in which page frames can be used. In particular, the Linux kernel has to deal with two hardware constraints of the 80x86 architecture.

  • Direct memory storage DMA processors on the ISA bus have a severe limitation: they can only address the first 16MB of RAM

  • In modern 32-bit computers with large amounts of RAM, the CPU cannot directly access all physical addresses, because the linear address space is too small, it is impossible for the kernel to directly map all physical memory to the linear address space, we will follow the typical architecture (x86) The above memory area division explains in detail the memory area division on x86_32 

Therefore, the Linux kernel needs to use different management methods and mapping methods for different areas of memory, so the kernel converts the physical address or into different address areas represented by zone_t

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324746627&siteId=291194637