> 4 ГБ памяти для 32-разрядных приложений, работающих на 64-разрядной версии Solaris (очень большая память) - PullRequest
1 голос
/ 11 ноября 2011

Как MS Windows, так и Oracle Linux позволяют 32-битным приложениям использовать> 4 ГБ памяти.Метод Windows - AWE: Расширения адресного окна , а метод Linux - Очень большая память .

Как это работает: 32-разрядное приложение не может напрямую адресовать> 4 ГБвиртуальной памяти;но 64-битная ОС может и 4 ГБ памяти слишком мало для некоторых приложений.Итак, VLM и AWE позволяют приложению резервировать огромный объем памяти из 64-битной ОС (или даже из 32-битной ОС с AWE).32-разрядное приложение не может обращаться к этой памяти напрямую, но может попросить ОС настроить отображение некоторой части огромной памяти в первые 4 ГБ (в 32-разрядное виртуальное пространство), затем к этой памяти можно получить доступ, изменить ее;затем он возвращается обратно (с запросом ОС).

Вопрос: есть ли что-то вроде VLM или AWE в ОС Solaris (версия 10 или 11; x86_64 или sparc64)?

Ответы [ 2 ]

2 голосов
/ 13 ноября 2011

Нет библиотеки, о которой я знаю, но реализовать ее было бы довольно просто в Solaris (и во всех Unix / Unix-подобных ОС, поддерживающих tmpfs и mmap).

Просто создайте файл нужного размера (например, 16 ГиБ) в / tmp (при условии, что / tmp установлен на tmpfs, конфигурация по умолчанию) и попросите процесс (-ы) отобразить различные области этого файла для доступа к памяти на разыскиваемые смещения.

Если вы действительно хотите получить доступ к физической памяти, а не к виртуальной, вы можете использовать поддержку ramdisk (ramdiskadm) в Solaris вместо tmpfs.

0 голосов
/ 13 ноября 2011

Solaris поддерживает PAE (расширение физического адреса), но поиск в Google не дает красивой картины.Доступно очень мало информации, и большинство из них - ужасные предупреждения о том, что куча драйверов сторонних производителей не будет работать с ней.

...