Most (all?) amd64 processors only actually use 48 bits of the 64-bit virtual address space. It&#x27;s split into 00000000 00000000 - 00007fff ffffffff and ffff8000 00000000 - ffffffff ffffffff, so you can do the usual thing of userspace at the bottom and kernelspace at the top, but it continues to be backwards-compatible if we ever need more than 48 bits of virtual address space.<p>From the Intel programmer&#x27;s manual:<p>&gt; <i>In 64-bit mode, an address is considered to be in canonical form if address bits 63 through to the most-significant implemented bit by the microarchitecture are set to either all ones or all zeros.</i><p>&gt; <i>Intel 64 architecture defines a 64-bit linear address. Implementations can support less. The first implementation of IA-32 processors with Intel 64 architecture supports a 48-bit linear address. This means a canonical address must have bits 63 through 48 set to zeros or ones (depending on whether bit 47 is a zero or one).</i><p>This is a confusingly obscure and pedantic point to make on a marketing page, though. Most kernel hackers on 64-bit platforms barely think about this.