I'm reading about linux kernel logical/virtual address, and high/low memory. As I understand, kernel logical space are the portion of memory that are directly 1:1 mapped to physical memory. For example on a 32-bit system with small ram (e.g. 512MB), virtual space 3GB ~ 3GB + 512MB are kernel logical space 1:1 mapped to all 512 MB physical memory continuously (in this case no high memory).
My confusion is: does it mean that kernel claims the whole 512MB RAM?
If kernel logical address 3GB ~ 3GB + 512MB must use this fixed 1:1 mapping to physical memory, as I understand these 512MB physical memory then cannot be shared with others, is it correct?
For example, If kernel wants to access logical address 3GB + 0x10000, which is directly mapped to physical address 0x10000, but what if this physical frame has already been taken (e.g. by a user process), what would happen?
Or somewhere I totally understand wrong?