Эти ограничения исходят не от Debian или Linux, а от аппаратного обеспечения. Различные архитектуры (процессор и шина памяти) имеют разные ограничения.
На современных процессорах x86-64 для ПК MMU допускает 48 бит виртуального адресного пространства . Это означает, что адресное пространство ограничено 256 ТБ. С одним битом, чтобы отличить адреса ядра от адресов пользователя, это оставляет 128 ТБ для адресного пространства процесса.
На современных процессорах x86-64 физические адреса могут использовать до 48 бит , что означает, что вы можете иметь до 256 ТБ. С тех пор, как была введена архитектура amd64, предел постепенно увеличивался (с 40 бит, если я правильно помню). Каждый бит адресного пространства требует некоторой логики подключения и декодирования (что делает процессор более дорогим, медленным и более горячим), поэтому производители оборудования имеют стимул уменьшать размер.
Linux позволяет только физическим адресам доходить до 2 ^ 46 (поэтому вы можете иметь только до 64 ТБ), потому что это позволяет полностью отобразить физическую память в пространстве ядра. Помните, что есть 48 бит адресного пространства; один бит для ядра / пользователя оставляет 47 битов для адресного пространства ядра. Половина из этого, самое большее, относится непосредственно к физической памяти, а другая половина позволяет ядру отображать все, что ему нужно. (Linux может справиться с физической памятью, которая не может быть отображена полностью в одно и то же время, но это создает дополнительную сложность, поэтому это делается только на платформах, где это требуется, таких как x86-32 с PAE и armv7 с LPAE.)
Полезно, чтобы виртуальная память была больше физической памяти по нескольким причинам:
- Это позволяет ядру отобразить всю физическую память и оставить место для виртуальных отображений.
- Помимо сопоставлений физической памяти, существуют сопоставления подкачки, файлов и драйверов устройств.
- Полезно иметь нераспределенную память местами: защитные страницы для обнаружения переполнения буфера , большие не отображенные зоны из-за ASLR и т. Д.