WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти[1]. Также в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за запрет исполнения кода в странице, что затрудняет атаку по методу переполнения буфера.

Впервые расширение появилось в процессоре Pentium Pro. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на программном уровне (включение режима PAE в ОС) и аппаратном: необходима поддержка как со стороны процессора, так и материнской платы (можно определить по команде CPUID). Материнские платы с поддержкой PAE, как правило, были дорогими и предназначенными для серверов.[2].

Применение

  • PAE позволяет использовать более 4 ГБ оперативной памяти в 32-битной ОС.
  • PAE требуется для поддержки NX[3].

Проблемы

  • Из-за увеличения количества страничных уровней[4] система начинает тратить больше времени при обращении к памяти. Таким образом, если типичный объём используемой программой памяти незначительно больше 2 ГБ, то работа без PAE может быть эффективнее.
  • Некоторые драйверы[5] несовместимы с режимом PAE.
  • В 32-битной Windows режим включается автоматически, когда система поддерживает PAE (Physical Address Extension) и присутствует более 4 ГБ памяти, и, если не задать «noexecute=alwaysoff /nopae» в boot.ini, который запрещает загрузчику (NTLDR) использовать PAE-версию ядра.
  • Если пользователь включил запрет исполнения кода в страницах памяти (NX, технология DEP), то режим PAE в 32-битных версиях ОС Windows включается автоматически[6], независимо от наличия «/nopae».

Поддержка PAE в различных ОС

Windows

Начиная с Windows XP Service Pack 2, по умолчанию, на процессорах с поддержкой технологий no-execute (NX) или execute-disable (XD) система использует PAE для возможности использования DEP[7].

В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного PAE включается ключом /PAE в файле boot.ini, однако, максимальный физический адрес доступного операционной системе ОЗУ искусственно ограничен на уровне ядра по маркетинговым соображениям[8]. В Windows XP это ограничение составляет 4 ГБ, 32-разрядный Windows Server 2003 Enterprise Edition поддерживает до 64 ГБ. Существуют программы, позволяющие обойти ограничение на доступную память[9], но их использование является нарушением лицензионного соглашения Microsoft[10]. В случае 4 ГБ ОЗУ память можно использовать в Windows XP почти полностью, переместив системные области адресного пространства выше 4 ГБ, такую функцию поддерживают некоторые версии BIOS. Тем не менее, согласно заявлениям Microsoft, введение 4-ГБ ограничения адресного пространства связано с отсутствующей или плохой поддержкой 36-битного адресного пространства некоторыми драйверами устройств[11].

Одним из пунктов минимальных системных требований Windows 8 является обязательная поддержка процессором PAE.

Другой возможностью для использования более 4 гигабайт памяти является интерфейс Address Windowing Extensions.

Обычные 32-битные версии Windows поддерживают до 4—8 ГБ ОЗУ, Datacenter - до 32—64. В Starter версиях Windows XP и Vista — ограничение в 0,5—1 ГБ[12].

Также для 32-битных приложений в Windows можно использовать специальный патчер, который снимает лимит используемой ОЗУ в 2 ГБ без необходимости его перекомпилировать. Применим и для 32-битных приложений в 64-битной среде Windows с аналогичной целью. Это нужно в основном для увеличения адресного пространства 32-битных приложений, так как они ограничиваются вышеуказанным объемом в 2 ГБ на каждый процесс[13]. Стоит отметить, что этот способ не всегда работает и приложение может перестать запускаться. В некоторых случаях пропатченное приложение таким образом может увеличить свою производительность, например, скорость запуска уровня в некоторых играх.

Linux

В ядре Linux полная поддержка PAE имеется, начиная с версии 2.3.23 (1999)[14]. Оно поддерживает 36-битную физическую адресацию — до 64 ГБ ОЗУ. Для запуска ядра, собранного с поддержкой PAE (опция CONFIG_X86_PAE=y), требуется процессор с данной функцией; загрузка на более ранних процессорах, таких как Pentium Pro или Pentium M, невозможна. Многие дистрибутивы поставляются либо с дополнительным пакетом PAE-ядра, либо используют такое ядро по умолчанию. Например, с 2009 Fedora перешла на PAE-ядро[15] В 2012 году некоторые дистрибутивы, например RHEL 6 и Ubuntu 12.10, прекратили поставку ядер без поддержки PAE[16][17]. Fedora и Debian продолжают распространение как PAE-, так и не PAE- версий ядра[18][19].

Включение PAE необходимо для поддержки функциональности NX (доступна с ядер 2.6.8)[20][21].

FreeBSD

FreeBSD поддерживает PAE: в линейке 4.x версий — начиная с 4.9, в линейке 5.x версий — начиная с 5.1, все 6.x и более поздние. Не все драйверы поддерживают более 4 ГБ ОЗУ и поэтому могут работать некорректно.

Mac OS X

В Mac OS X режим PAE включён по умолчанию при использовании 32-разрядного ядра.

Solaris

Solaris поддерживает PAE, начиная с версии 7. Однако драйверы сторонних разработчиков могут работать некорректно.

См. также

Примечания

  1. часть адресного пространства, обычно от 0,9 до 2 ГБ резервируется под нужды ОС и недоступны приложению, см 3 GB barrier,
  2. Intel Corporation. Intel Chipset 4 GB System Memory Support (pdf). Pentium Pro Family Developer’s Manual (February 2005). — «In uni-processor based systems for mobile, desktop, workstation, and entry level servers, chipsets may be limited to 4 GB of maximum memory. In today’s dual processor Intel server chipsets and workstations, maximum system memory size can be upwards of 16 GB.». Архивировано 28 октября 2014 года.
  3. Jamie Adams. Protecting Linux Against Overflow Exploits (англ.). infosec (September 23, 2010). — «Most Linux distributions bundle NX support with a PAE-enabled kernel (kernel-PAE). However, some people don't install the Physical Address Extension (PAE) kernel because they think it is just to provide support for physical memory above 4GB.». Проверено 27 ноября 2013.
  4. Physical Address Extension
  5. Например, драйвер Microsoft Device Emulator
  6. Physical Address Extension — PAE Memory and Windows
  7. The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version
  8. Licensed Memory in Windows Vista // Geoff Chappell, 2012  (англ.)
  9. How to use full 4GB RAM in Windows 7 32 Bit (Gavotte RAMDisk in Windows 7) | Homepage of Jens Scheffler
  10. Geoff Chappell - Software Analyst. Licensed Memory in 32-Bit Windows Vista (англ.). — «That 32-bit editions of Windows starting with Windows Vista are limited to 4GB ...The 32-bit editions of Windows Vista and Windows 7 all contain code for using physical memory above 4GB. Microsoft just doesn’t license you to use that code.». Проверено 26 декабря 2013.
  11. Еще раз про Windows и четыре гигабайта // IXBT 8 августа 2012 г. Игорь Петрович Лейко
  12. Memory Limits for Windows Releases. Microsoft (March 25, 2010). Проверено 5 апреля 2010.
  13. Преодолевая ограничения Windows: виртуальная память (англ.), Mark Russinovich по-русски. Проверено 29 ноября 2018.
  14. 2.3.23-pre4 x86 64 GB RAM changes [HIGHMEM patch] explained a bit.
  15. x86 Specifics for Fedora 11.
  16. EnablingPAE. Проверено 28 апреля 2013.
  17. RHEL 6 Release Notes, 12.6. General Kernel Updates 12.6.1. Physical Address Extension (PAE). RedHat. — «The default kernel shipped with the x86 architecture version of Red Hat Enterprise Linux 6 is PAE enabled. A PAE enabled processor is a minimum requirement for the x86 variant of Red Hat Enterprise Linux 6.». Проверено 27 ноября 2013.
  18. Features/ArchitectureSupport // Fedora
  19. Chapter 29. Manually Upgrading the Kernel // Fedora 12 Documentation: «29.1. Overview of Kernel Packages»
  20. Professional Linux Kernel Architecture, Figure 3.16 Code flow for paging_init, «Execute Disable Protection is also enabled if supported by processor and if the kernel was compiled with PAE support; unfortunately, the feature is otherwise not available.»
  21. corbet. x86 NX support, LWN (June 2, 2004). Проверено 27 ноября 2013.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии