4.2. Память

4.2.1. Поддерживает ли FreeBSD больше 4═Гбайт памяти (ОЗУ)? Больше 16═Гбайт? Больше 48═Гбайт?
4.2.2. Почему FreeBSD видит меньше 4═Гбайт памяти, когда система установлена на машину i386?

4.2.1. Поддерживает ли FreeBSD больше 4═Гбайт памяти (ОЗУ)? Больше 16═Гбайт? Больше 48═Гбайт?

Да. FreeBSD как операционная система в целом поддерживает столько же физической памяти (ОЗУ), сколько аппаратная платформа, на которой она работает. Имейте в виду, что различные платформы имеют различные ограничения на память; например, i386" без PAE поддерживает максимум 4═Гбайт памяти (и обычно еще меньше из-за адресного пространства PCI), а i386 с PAE поддерживает максимум 64═Гбайт. Платформы AMD64, существующие на текущий момент, ограничены объемом 1═Тбайт физической памяти.

4.2.2. Почему FreeBSD видит меньше 4═Гбайт памяти, когда система установлена на машину i386?

Общее адресное пространство для машин i386 является 32-разрядным; это означает, что адресоваться (т.е. быть получено) может не более 4═Гбайт памяти. Более того, некоторые адреса в этом диапазоне зарезервированы для различных целей аппаратным обеспечением, например, для использования и управления устройствами PCI, для доступа к видеопамяти, и так далее. Таким образом, общий объем памяти, используемой операционной системой для ядра и приложений, ограничен размером, значительно меньшим, чем 4═Гбайт. В такой конфигурации максимально доступная физическая память составляет от 3.2═Гбайт до 3.7═Гбайт.

Для преодоления ограничения в 3.2═Гбайт-3.7═Гбайт установленной памяти (т.е. для получения 4═Гбайт, но также более 4═Гбайт) должен использоваться специальный механизм, именуемый PAE. Сокращение PAE расшифровывается как Physical Address Extension (расширение физического адреса) и предоставляет для 32-разрядных x86 процессоров способ адресовать более 4═Гбайт памяти. PAE переназначает память, которая иначе была бы перекрыта адресными резервациями для аппаратных устройств выше диапазона 4═Гбайт, и использует ее как дополнительную физическую память (смотрите pae(4)). Использование PAE имеет свои недостатки; такая модель доступа к памяти является чуть более медленной по сравнению с обычным режимом (без PAE), и также не работают динамически загружаемые модули (смотрите kld(4)). Это означает, что все драйверы должны присутствовать статически в самом ядре.

Самый общий способ включить PAE -- это собрать новое ядро со специальным уже подготовленным файлом конфигурации ядра, именуемым PAE, который уже сконфигурирован для сборки безопасного ядра. Имейте в виду, что некоторые строки в этом файле конфигурации ядра являются слишком консервативными, и некоторые драйверы, помеченные как неготовые для использования с PAE, на самом деле являются годными. На практике, если драйвер работает на 64-разрядной архитектуре (такой как AMD64), он также работает с PAE. Если вы хотите создать свой собственный файл конфигурации ядра, то вы можете включить PAE, добавив в свою конфигурацию следующую строку:

options       PAE

PAE не является широко используемым в настоящее время, поскольку большинство нового x86 аппаратного обеспечения также поддерживает работу в 64-разрядном режиме, также известном как AMD64 или Intel╝═64. Этот режим имеет большее адресное пространство и не нуждается в таких трюках. FreeBSD поддерживает AMD64, и рекомендуется использование этой версии FreeBSD вместо версии i386, если требуется больше 4═Гбайт памяти.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.