linuxembedded-linux

What does 'low memory' mean in Linux?


I'm getting little confused on "The boot program first copies itself to a fixed high-memory address to free up low memory for the operating system".

What I know about low memory that I found by googling was that this is first 640K memory in DOS system. Does this means all of the OS system (like kernel) goes in to low memory (640K)?


Solution

  • This link could be helpful: Virtual Memory

    Mainly,

    On 32-bit systems, memory is now divided into "high" and "low" memory. Low memory continues to be mapped directly into the kernel's address space, and is thus always reachable via a kernel-space pointer. High memory, instead, has no direct kernel mapping. When the kernel needs to work with a page in high memory, it must explicitly set up a special page table to map it into the kernel's address space first. This operation can be expensive, and there are limits on the number of high-memory pages which can be mapped at any particular time.

    This question on unix.stackexchange is a little more in-depth: High and low memory