Zones can be thought of as Linux's way of smoothing out and dealing with hardware quirks. These proliferate on the x86, where Linux "grew up," of course. They also deal with a few software difficulties (look up ZONE_HIGHMEM on the now mostly legacy 32-bit i386 architecture; we discussed this concept in an earlier section, High memory on 32-bit systems).
Zones consist of page frames – physical pages of RAM. More technically, a range of Page Frame Numbers (PFNs) are allocated to each zone within a node:
In Figure 7.10, you can see a generic (example) Linux system with N nodes (from 0 to N-1), each node consisting of (say) three zones, each zone being made up of physical pages of RAM – page frames. The number (and name) of zones per node is dynamically determined by the kernel at...