At boot, the Linux kernel "maps" all (usable) system RAM (aka platform RAM) directly into the kernel segment. So, we have the following:
- Physical page frame 0 maps to kernel virtual page 0.
- Physical page frame 1 maps to kernel virtual page 1.
- Physical page frame 2 maps to kernel virtual page 2, and so on.
Thus, we call this a 1:1 or direct mapping, identity-mapped RAM, or linear addresses. A key point is that all these kernel virtual pages are at a fixed offset from their physical counterparts (and, as already mentioned, these kernel addresses are referred to as kernel logical addresses). The fixed offset is the PAGE_OFFSET value (here, 0xc000 0000).
So, think of this. On a 32-bit system with a 3:1 (GB) VM split, physical address 0x0 = kernel logical address 0xc000 0000 (PAGE_OFFSET). As already mentioned, the terminology kernel logical address is applied to kernel addresses...