Linux Kernel occupies 3g of linear space ~ 4G (32-bit) (/include/asm-i386/page. h, specified by _ PAGE_OFFSET, # define
_ PAGE_OFFSET (0xC0000000), so the physical memory that can be directly mapped to the Linux kernel space cannot exceed 1 GB. in Linux, set this value to 896 MB and save it in the high_memory variable. Therefore, the physical memory is higher than m and is called high memory. How does the Linux kernel locate high memory? This is why Linux does not need 1g linear space to directly map physical memory, but only 896 M. The remaining M linear space is dynamic ing.
High memory, of course, these mappings are temporary. When you need to map another part of High Memory, you need to replace these mappings. For details, see Understanding Linux Kernel.
Based on the above explanation, in 64-bit Linux, The Kernel linear space is not limited to 1 GB.
When we see the Linux Kernel Development 3rd and High Memory Mappings section, we will talk about how high memory is mapped, what functions are used, and the result is not clear about what is highmemory, fortunately, there are good explanations on Understanding Linux Kernel.
See section: Understanding Linux Kernel, Kernel Mappings of High-Memory Page Frames.