Hình ảnh sau đây cho thấy cách phân chia không gian địa chỉ ảo 32 bit:
Nhưng làm thế nào một không gian địa chỉ ảo 64 bit được phân chia?
Hình ảnh sau đây cho thấy cách phân chia không gian địa chỉ ảo 32 bit:
Nhưng làm thế nào một không gian địa chỉ ảo 64 bit được phân chia?
Câu trả lời:
Bản đồ bộ nhớ ảo 64 bit x86 chia không gian địa chỉ thành hai: phần dưới (với bit trên cùng được đặt thành 0) là không gian người dùng, phần trên (với bit trên cùng được đặt thành 1) là không gian nhân. (Lưu ý rằng x86-64 định nghĩa các địa chỉ kinh điển của Vương quốc Hồi giáo nửa dưới và nửa cao hơn, với một số bit được giới hạn hiệu quả ở 48 hoặc 56; xem Wikipedia để biết chi tiết.)
Bản đồ hoàn chỉnh được ghi lại chi tiết trong kernel ; hiện tại có vẻ như
========================================================================================
Start addr | Offset | End addr | Size | VM area description
========================================================================================
| | | |
0000000000000000 | 0 | 00007fffffffffff | 128 TB | user-space virtual memory
__________________|_________|__________________|_________|______________________________
| | | |
0000800000000000 | +128 TB | ffff7fffffffffff | ~16M TB | non-canonical
__________________|_________|__________________|_________|______________________________
| | | |
ffff800000000000 | -128 TB | ffffffffffffffff | 128 TB | kernel-space virtual memory
__________________|_________|__________________|_________|______________________________
với địa chỉ ảo 48 bit. (Biến thể 56 bit có cùng cấu trúc, với 64 PB không gian địa chỉ có thể sử dụng ở hai bên của lỗ PB 16K.)
Không giống như trường hợp 32 bit, bản đồ bộ nhớ 64 bit 64 bit là một sự phản ánh trực tiếp các ràng buộc phần cứng.