Làm thế nào một không gian địa chỉ ảo 64 bit được phân chia trong Linux?


12

Hình ảnh sau đây cho thấy cách phân chia không gian địa chỉ ảo 32 bit:

nhập mô tả hình ảnh ở đây

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:


10

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.


Để làm rõ: giới hạn này được áp đặt bởi phần cứng. Hiện tại không có triển khai bộ xử lý 64 bit nào không để lại một lỗ lớn các địa chỉ không thể sử dụng ở giữa không gian địa chỉ ảo. Dung lượng bộ nhớ vật lý mà CPU có thể xử lý cũng nằm dưới mức 2 so với sức mạnh của 64.
Johan Myréen

Cảm ơn @Johan, tôi đã cố gắng làm nổi bật điều này.
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.