Memory addressing confusion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm really confused about the differences between the logical, linear, and
virtual addresses on x86 systems after reading "Linux Core Kernel
Commentary" and "Understanding the Linux Kernel".

"Linux Core Kernel Commentary" states that the logical address space is also
known as the virtual address space (logical == virtual). It then says that
on x86 that the logical and linear address space is the same (logical ==
linear). Thus virtual, linear, and logical addresses are all the same,
right? What's the point of having three names for the same thing?

"Understanding the Linux Kernel" states in chapter 1 that a virtual address
is the same as a logical address (logical == virtual), but in chapter 2 it
states that a linear address is also known as a virtual address (linear ==
virtual).

I'm also confused about who actually translates from the logical address to
the linear address to the virtual address to the physical address. Does the
CPU (and associated hardware) do this magically behind the scenes? Does the
OS take care of the conversions? Does the OS set up the mapping that the CPU
uses or vice-versa? Where in the kernel does this transformation take place?

Lots of questions and ambiguous and seemingly inconsistent answers. Please
help!

Thanks,
Kirk

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux