Suppose I 32-bit machine only 500 MB of memory, "before the kernel directly mapping the 896 MB of physical memory" should be how to analysis?
Under the condition of the physical memory of 4 g,
Kernel mapping the former 896 MB of physical memory directly, this is the kernel initializes the memory manager to establish the mapping, the Present in the page table fields (refer to page 1 said in main memory), the page table to ensure a uniform linear mapping, ensure that any time the kernel can direct access to physical memory (regardless of high-end memory),
This should all have no ambiguity?
However, article in https://blog.csdn.net/tommy_wxie/article/details/17122923:
"
The origin of the Linux kernel high memory
When the kernel module code or threads access memory, the memory address of code into logical address, and correspond to the real physical memory address, the need to address the one-to-one mapping, such as logical address 0 xc0000003 corresponding physical addresses 0 x 3, 0 xc0000004 corresponding physical addresses 0 x 4,... ... The corresponding relationship, logical addresses to physical addresses for
Physical address=logic - 0 xc0000000: this is the address of the kernel address space transformation relations, pay attention to the virtual address in the "high-end" kernel, but ta mapping physical memory address in the low-end,
"
The inside of the 1, one-to-one mapping of the need to address?? I don't understand, because in the case of physical memory 500 MB, how can the one-to-one mapping?? Mapping the remaining 896-500?
The kernel before 896 MB of memory is "one-to-one mapping", this sentence right?