I'm reading through the book "Understanding Linux Kernel" by Bovet and Cesati. In the second chapter, under "Paging in Linux" the author mentions how Page Middle and Upper Directories are eliminated with 32 architectures not having PAE enabled. I'm having trouble following what the author means.
They have been loose in their treatment and does not make a whole lot of intuitive sense.
For 32-bit architectures with no Physical Address Extension, two paging levels are sufficient. Linux essentially eliminates the Page Upper Directory and the Page Middle Directory fields by saying that they contain zero bits. However, the positions of the Page Upper Directory and the Page Middle Directory in the sequence of pointers are kept so that the same code can work on 32-bit and 64-bit architectures. The kernel keeps a position for the Page Upper Directory and the Page Middle Directory by setting the number of entries in them to 1 and mapping these two entries into the proper entry of the Page Global Directory.
Can someone explain this in a more palatable manner?