7

In Linux Kernel Development (LKD) 3rd edition, chapter 12 under Zones, Robert Love says:

In particular, Linux has to deal with two shortcomings of hardware with respect to memory addressing:

  1. Some hardware devices can perform DMA (direct memory access) to only certain memory addresses.

  2. Some architectures can physically addressing larger amounts of memory than they can virtually address. Consequently, some memory is not permanently mapped into the kernel address space.

My Questions:

  1. First is okay, what does he mean by 2?
  2. Does he mean to say: Some architectures can address larger amounts of physical memory than they can address virtual addresses?
  3. How's that possible? I thought virtual address space is larger than physical memory or at least (if any) equal to physical memory.
  4. Also, isn't it because VAS (virtual address space) is larger than physical memory, some memory is not permanently mapped into KAS (kernel address space).

But I'm guessing that only physical memory is mapped into KAS. Let me know what he means by point #2 above and what wrong assumption(s) I'm making here.

4

Physical Address Extension (PAE) sounds exactly like what he's referring to.

A 32-bit CPU can only map ~4gb of memory, even if the system has more. But with PAE, you can use >4gb, though only 4gb of it is mapped at any one time (a single process will never be able to use >4gb).

So basically when the kernel changes the actively running process, it re-maps the virtual memory to the physical memory which that process is currently using.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.