PAE

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

Вперше розширення з'явилося в процесорі Pentium Pro. Для використання 36-розрядної адресації пам'яті необхідна підтримка розширення фізичних адрес на апаратному рівні (можна визначити по команді CPUID) і програмне включення режиму PAE в ОС.

Підтримка PAE у різноманітних ОС[ред.ред. код]

Windows[ред.ред. код]

Починаючи з Windows XP Service Pack 2, за замовчуванням, на процесорах з no-execute (NX) або execute-disable (XD) система використовує PAE для можливості використання NX[1]

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

Linux[ред.ред. код]

У ОС Linux підтримка PAE є починаючи з версії 2.3.23. Вона підтримує до 64 Гб ОЗУ, але вимагає від процесора підтримки PAE. Також для включення PAE необхідно перезібрати ядро з параметром PAE. Оскільки це не завжди зручно, більшість дистрибутивів включили в свої сховища (репозиторії) готові ядра з цим параметром. Також останні версії деяких дистрибутивів поставляються з ядром з вже ввімкнутою підтримкою PAE.

FreeBSD[ред.ред. код]

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

Mac OS X[ред.ред. код]

У Mac OS X режим PAE включений за замовчуванням при використанні 32-розрядного ядра. Запущені програми при цьому можуть використовувати як 32-розрядну, так і 64-розрядну адресацію, що знімає обмеження на обсяг пам'яті, що виділяється кожній програмі.

Solaris[ред.ред. код]

Solaris підтримує PAE, починаючи з версії 7. Однак драйвери сторонніх розробників можуть працювати некоректно.

Див. також[ред.ред. код]

Примітки[ред.ред. код]

Посилання[ред.ред. код]

Physical Address Extension — PAE Memory and Windows (англ.)