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/