Чому Windows х86 не бачить оперативну пам'ять більше 4 ГБ
- Максимально підтримувані різними версіями Windows обсяги фізичної пам'яті
- Межа фізичної пам'яті в Windows Vista
- Межа фізичної пам'яті в Windows 7
- Межа фізичної пам'яті в Windows 8
- Причини, за якими Microsoft обмежує верхню межу фізичної пам 'яті в клієнтських версіях Windows x86
- Проблеми з безпекою Windows XP
- Проблеми, що виникли після примусового включення режиму PAE в Windows XP SP2
- Особливості адресації пам'яті в режимі PAE
- 4 гігабайтний ліміт фізичної пам'яті як вирішення проблеми нестійкої роботи драйверів пристроїв в режимі PAE
- Пам'ять більше 4 гігабайт в 32-розрядних серверних версіях Windows
- Проблеми, що виникають із-за 4 гігабайтного обмеження фізичної пам 'яті в клієнтських версіях Windows x86
Привіт шановні читачі блогу www.ithabits.ru. Продовжуємо розмову про особливості роботи 32-бітових операційних систем з оперативною пам'яттю великого обсягу.
В першій публікації циклу ми зробили короткий екскурс в історію появи і розвитку процесорів і популярних операційних систем в результаті якого з'ясували, що процесори з архітектурою IA32 придбали можливість працювати з пам'яттю більше 4 ГБ починаючи з 1995 року, а через деякий час використовувати цю можливість навчилися і 32-розрядні Операційні системи. Це стало можливим завдяки появі технології PAE (Physical Address Extension - розширення фізичних адрес).
Далі ми звернули увагу на те, що в клієнтських версіях операційних систем Microsoft Windows ХР x86 верхня межа доступної фізичної пам'яті обмежений на рівні 4 ГБ.
Максимально підтримувані різними версіями Windows обсяги фізичної пам'яті
Подивимося скільки оперативної пам'яті підтримують інші версії Windows, випущених після ХР. Відомості візьмемо з Memory Limits for Windows Releases (Windows) .
Межа фізичної пам'яті в Windows Vista
У версіях Windows Vista х86 в порівнянні з ХР практично нічого не змінилося.
Межа фізичної пам'яті в Windows 7
Як бачимо, знову ніяких змін - абсолютний межа для x86 залишився на рівні 4 ГБ.
1 ГБ в Windows Vista Starter і 2 ГБ в Windows 7 Starter тільки підкріплюють висновок про штучний характер цих обмежень.
Межа фізичної пам'яті в Windows 8
Як видно з наведеної таблиці, в плані лімітів пам'яті в Windows 8 теж нічого не змінилося. Шкода, могли б уже, напевно, обмеження зняти або, принаймні, відсунути.
Причини, за якими Microsoft обмежує верхню межу фізичної пам 'яті в клієнтських версіях Windows x86
Спробуємо розібратися звідки взялося це обмеження і чому Windows х86 не бачить оперативну пам'ять більше 4 ГБ. Повернемося не на довго, як і в першій частині, в недалеке минуле. Втім, не таке вже це і минуле - Windows XP до сих пір дуже популярна і активно використовується.
Проблеми з безпекою Windows XP
Windows XP була випущена восени 2001 року і за дуже короткий термін завоювала величезну популярність серед користувачів у всьому світі. А, як відомо, де велика популярність, там і великі проблеми. Моментально для неї було створено величезну кількість шкідливого коду у вигляді різноманітних і численних вірусів. При цьому виявилося, що нова операційна система має ряд вразливостей і вельми низьку стійкість до злому. Свого повноцінного клієнтського антивірусного пакета в той час у Microsoft не було. Ситуацію значною мірою виправляли програмні продукти сторонніх розробників, однак, цього було явно недостатньо і, в цілому, становище залишалося досить напруженим.
Скористаюся відповідним моментом, щоб похвалитися. Всі комп'ютери з Windows XP, які я администрировал в той період часу, а було їх уже як б не більше сотні в кількох організаціях, пережили цей момент практично без втрат і серйозних неприємностей. Щоб не відводити в бік від теми, я розповім про те, як мені це вдалося, в окремому пості . Насправді все дуже просто.
Для того щоб якось підвищити безпеку Windows XP, в 2004 році був випущений другий пакет оновлень - SP2.
Проблеми, що виникли після примусового включення режиму PAE в Windows XP SP2
Однією з головних особливостей цього пакета, з точки зору безпеки, було включення технології DEP (Data Execution Prevention - запобігання виконання даних). Ця технологія, повсюдно використовується і сьогодні, дозволяє відображати цілий клас шкідливих атак завдяки забороні запуску виконуваного коду з непередбачених для цього сторінок пам'яті.
Однак, як ми вже знаємо з попередньої статті, для роботи DEP повинна бути включена підтримка PAE (Physical Address Extension - розширення фізичних адрес). Функція переходу в режим PAE змінює механізм звернення до сторінок оперативної пам'яті і робить можливим роботу з фізичною пам'яттю розміром більше 4 ГБ.
Здавалося б, все чудово. Однак при підготовці і тестуванні Windows XP з другим пакетом оновлень виявилися великі проблеми, що приводили до фатальних помилок і аварійним відмовам у роботі операційної системи. Дуже швидко причини неприємностей були знайдені. Ними виявилися драйвери пристроїв, написані без урахування можливості їх роботи в режимі PAE.
Особливості адресації пам'яті в режимі PAE
У режимі PAE будь-яка сторінка пам'яті 32-розрядної віртуального адресного простору додатків насправді може бути розташована в будь-якому місці фізичної пам 'яті. Звичайні додатки ця обставина ніяк не зачіпає, їм все одно. А ось для драйверів пристроїв все значно гірше - їм то треба працювати з конкретними фізичними адресами, а не з віртуальними. Умовно ситуацію можна змалювати таку картину>
Драйвер намагається вважати або записати якусь інформацію за адресами, які відведені для роботи з пристроєм. Якщо драйвер "дурний", не розуміє в якому оточенні він працює і не може "домовитися" з операційною системою, то, як показано на малюнку, замість портів введення / виводу свого пристрою він почне спілкуватися з якимись осередками фізичної пам'яті. Результат такого "спілкування" для роботи системи, я думаю, коментарів не потребує.
4 гігабайтний ліміт фізичної пам'яті як вирішення проблеми нестійкої роботи драйверів пристроїв в режимі PAE
Для того щоб вирішити цю проблему і не блокувати установку SP2 користувачами через можливі проблем, Microsoft прийняла командирську рішення - PAE включити, але тривіально обмежити верхню межу оперативної пам'яті клієнтських версій своєї операційної системи на рівні 4 ГБ. Адреси при цьому транслюються один в один як в "класичної" 32-розрядної системі і "дурні" недороблені драйвери пристроїв успішно працюють.
Про те, що таке рішення мало місце бути, можна переконатися в пізнішій статті Microsoft Operating Systems and PAE Support . Ну що ж, дешево і сердито. Дешево тому, що виробникам обладнання не потрібно було спішно замовляти розробку "правильних" драйверів. Сердито тому, що відкладені таким чином до пори до часу проблеми з використанням фізичної пам'яті комп'ютера, були перекладені на кінцевого користувача.
Скоро виповниться вже 10 років з моменту виходу SP2, а Windows як і раніше не бачить оперативну пам'ять більше 4 ГБ і, як ми бачили по таблиці "Physical Memory Limits: Windows 8", змін у цьому плані не передбачається.
Що мені сьогодні не зрозуміло, так це чому була упущена можливість виправити ситуацію в момент виходу Windows Vista. Адже драйвери для роботи пристроїв в цій системі розроблялися нові, а з моменту виходу SP2 до Windows XP до появи Windows Vista пройшло 2 роки, а це термін не маленький. Велика пам'ять була все ще не актуальна, або у Microsoft на цей рахунок були інші міркування?
По всій видимості і були і є, якщо Windows 8 x86 і раніше не бачить оперативну пам'ять більше 4 ГБ. Сьогодні вже дуже важко уявити собі 32-розрядні драйвери, які не вміють працювати з пам'яттю більше 4 ГБ. Можливо причина в тому, що Microsoft таким чином хоче підштовхнути користувачів до переходу на x64? А ви що думаєте з цього приводу?
Пам'ять більше 4 гігабайт в 32-розрядних серверних версіях Windows
А як же серверні версії Windows? Можна припустити, що для них драйвери пристроїв відразу розроблялися з урахуванням роботи в режимі PAE, тобто були "розумними" і ретельно тестувалися. Цьому сприяло і те обставина, що в серверних конфігураціях обладнання не було такого "звіринця" вбудованих пристроїв.
До недавнього часу, наприклад, до появи технології віртуалізації робочих місць, яка, в тому числі, передбачає можливість обробки графіки самим сервером, останньому абсолютно не потрібна була серйозна відеокарта, так як цілком вистачало відео, вбудованого в материнську плату. Крім того, 32-розрядні серверні версії Windows закінчили свою історію на Windows Server 2008.
Проблеми, що виникають із-за 4 гігабайтного обмеження фізичної пам 'яті в клієнтських версіях Windows x86
Одна з них очевидна - це неможливість використання пам'яті більше 4 ГБ.
Однак, це не все. Виявляється все не дуже добре вже й при 4 ГБ. Неспроста в самому початку ми визначили велику пам'ять на рівні близько 3 ГБ. Цю проблему ми розглянемо в наступній частині .
Опубліковано - 25 січень, 2012 рубриці - Microsoft Windows Теги: 32-бітна ОС , 4 ГБ , DEP , Microsoft , PAE , Physical Memory Limits , Windows 7 , Windows 8 , Windows Vista , Windows XP , Оперативна пам'ять
Велика пам'ять була все ще не актуальна, або у Microsoft на цей рахунок були інші міркування?Можливо причина в тому, що Microsoft таким чином хоче підштовхнути користувачів до переходу на x64?
А ви що думаєте з цього приводу?