- Причини, які можуть заважати переходу на 64-розрядні версії Windows
- Відсутність безпосередньої підтримки успадкованого обладнання
- Фінансові витрати при зміні версії Windows
- Тестування роботи Windows 7 x86 з ядром, що підтримує до 128 ГБ оперативної пам'яті
- Використання фізичної пам'яті Windows 7 x86 з вихідним ядром
- Використання фізичної пам'яті Windows 7 x86 з ядром ntkr128g.exe
- Порівняльне тестування роботи Windows 7 x86 з ядром ntkr128g.exe
- Чи варто використовувати Windows 7 x86 з модифікованим ядром (з підтримкою до 128 ГБ оперативної пам'яті)
Привіт шановні читачі блогу www.ithabits.ru. Пропоную вашій увазі заключну частину циклу статей про "пригоди" великий оперативної пам'яті в 32-бітних системах.
Коротко повторю висновки, які були зроблені в попередніх публікаціях цієї теми:
4-гігабайтний межа фізичної пам'яті був подоланий 32-розрядними процесорами x86 в 1995 році завдяки впровадженню технології PAE (Physical Address Extension). Практично всі сучасні 32-розрядні операційні системи мають підтримку PAE, що дозволяє працювати їм з фізичної пам'яттю об'ємом до 128 ГБ.
Для додатків (програм) робота системи в режимі PAE не є еквівалентною переходу на x64, так як вони як і раніше мають доступ тільки до 4 ГБ віртуальної пам'яті ( Частина 1 ).
- Всі 32-розрядні операційні системи Windows підтримують PAE. Починаючи з Windows XP SP2 режим PAE включається примусово для забезпечення роботи технології безпеки DEP (Data Execution Prevention). Не дивлячись на це, клієнтські версії Windows x86 мають обмеження максимального обсягу підтримуваної фізичної пам'яті на рівні 4 ГБ. Це обмеження в ядрі ОС було зроблено Microsoft з метою забезпечення функціонування драйверів пристроїв, розроблених без урахування можливості їх роботи в режимі PAE ( Частина 2 ).
- Встановлений в клієнтських версіях Windows x86 4 ГБ ліміт фізичної пам'яті унеможливлює використання в них всієї наявної в комп'ютері пам'яті. Microsoft вводить користувачів 32-розрядних версій Windows в оману декларуючи підтримку 4 ГБ фізичної пам'яті ( частина 3 ).
Сьогодні ми протестуємо здатність Windows 7 x86 працювати з оперативною пам'яттю більше 4 ГБ.
Напевно, можна було б не робити окремий пост і закінчити всі в минулий раз, але дуже не хотілося змішувати між собою варіанти "= 4 ГБ" і "> 4 ГБ". По-перше, 4 ГБ є офіційно заявленим Microsoft лімітом фізичної пам'яті для клієнтських версій. По-друге, дуже важливо було розібратися з адресним простором в цьому діапазоні і зрозуміти, що тут не так. А саме, чому 4 ГБ насправді не підтримуються.
Причини, які можуть заважати переходу на 64-розрядні версії Windows
Чи варто взагалі намагатися сьогодні змусити 32-розрядний Windows працювати з оперативною пам'яттю більш відміряних їй Microsoft 4 гігабайт? Чи не простіше відразу перейти на 64-розрядну версію і про все забути?
На моєму основному комп'ютері встановлена Windows 7 x64. Системою я повністю задоволений, ну або майже всім задоволений. З розділу невдоволень:
Відсутність безпосередньої підтримки успадкованого обладнання
У мене є МФУ Canon LaserBase MF3110, яке, дай бог йому здоров'я, до сих пір справно виконує свої функції. Однак, друкувати на нього безпосередньо з 64-бітної Windows я не можу через банальну відсутність відповідних 64-розрядних драйверів. Думаю, що їх не буде вже ніколи.
Точно така ж ситуація, навіть ще гірше, зі сканером Hewlett-Packard.
Трохи пізніше я обов'язково розповім як можна вийти з положення за допомогою віртуалізації. Ну не викидати ж справді через відсутність драйверів справно працює, нехай і не нове, обладнання.
Сьогодні успадковане обладнання є однією з причин, яка все ще гальмує перехід на 64-бітові операційні системи.
Та обставина, що в порівнянні з x32 системи x64 займають трохи більше місця на диску і в пам'яті, навряд чи можна вважати серйозним мінусом, хоча про це і люблять згадувати. Зате вони працюють швидше за рахунок більш повного використання можливостей процесора.
Фінансові витрати при зміні версії Windows
Ще одна причина, яка може перешкодити переходу на x64 тим, хто поки ще використовує 32-бітові версії Windows, є фінансово-організаційної. Можливо, вона навіть більш вагома, ніж успадковане обладнання.
Припустимо, що деякий час тому ви купили в магазині комп'ютер з попередньо встановленою 32-розрядної версії Windows, а через деякий час, з тієї чи іншої причини, прийняли рішення перейти на 64-розрядну. Дуже добре, але як реально здійснити це рішення?
Припустимо, що вас зовсім не лякає процес перестановки системи «з нуля" з супутніми йому і, треба сказати, не завжди вдалими, перенесенням даних і програм.
Ціна Windows x64 не відрізняється від Windows x86, але де її офіційно взяти і не платити при цьому додаткові гроші? Якщо чесно, то я не знаю. Якщо хтось знає, поділіться. Можу припустити, що легітимне рішення проходить все ж через магазин. Якщо при цьому врахувати, що офіційно ОЕМ версії Windows поставляються тільки з новими комп'ютерами і вибирати доведеться з більш дорогих коробкових варіантів, то бажання негайно здійснити задуманий перехід на x64 може помітно охолонути.
Добре поєднувати перехід на x64 зі зміною комп'ютера, але вона відбувається не так вже й часто.
Тестування роботи Windows 7 x86 з ядром, що підтримує до 128 ГБ оперативної пам'яті
Сьогодні в якості тестової лабораторії виступатиме настільний комп'ютер з процесором I7 і 6 ГБ оперативної пам'яті.
Так як система x64 в контексті теми нам не товариш, а віртуальна машина також не врятує в силу того, що їй не вдасться віддати більше 4 ГБ пам'яті, доведеться спеціально встановити 32-розрядну Windows. Давно хотілося протестувати можливість завантаження операційної системи з віртуального диска. Ось, як раз, дуже слушна нагода цю можливість випробувати.
Процес інсталяції "Windows 7 x86 Корпоративна" на віртуальний диск виявився не дуже складним. Єдине, що не вийшло зробити в системі, що працює з віртуального диска, так це визначити індекс продуктивності - починає міряти, потім каже, що не може закінчити оцінку продуктивності дискової системи. Шкода, але нам зараз це не актуально.
PS З'явилася стаття з докладним описом варіантів установки Windows 8.1 на віртуальний диск.
Використання фізичної пам'яті Windows 7 x86 з вихідним ядром
Частково повторимо те, що робили при дослідженні 32-розрядної Windows 7 з 4 ГБ фізичної пам'яті>
Тут все досить очікувано. З 6 ГБ доступно 3,24 ГБ, що становить всього 54% від встановленої фізичної пам'яті. Втрати складаються з 4 - 3,24 = 0,76 ГБ на адреси пристроїв і 2 ГБ, обрізаних вище 4 ГБ.
А ось "Монітор ресурсів" говорить, що під обладнання зарезервовано 2,8 ГБ, але ми цього, звичайно, не повіримо і запустимо утиліту MemInfo :
Використання фізичної пам'яті Windows 7 x86 з ядром ntkr128g.exe
Тепер ще раз зробимо протиправні дії проти Microsoft в ім'я науки і приберемо в ядрі операційної системи 4 гігабайтний обмеження. В силу того, що в результаті наших експериментів з ноутбуком у мене вже є готове "виправлене" ядро, я не буду більше запускати патчер , А просто скопіюють його в нову систему і підключу в завантаженні. Для цього потрібно зробити наступне:
- Копіюємо потрібне нам ядро "ntkr128g.exe" в папку C: \ Windows \ System32;
- Запускаємо в командному рядку з правами адміністратора bcdedit.exe без параметрів і знаходимо секцію, яка відповідає за завантаження системи з віртуального жорсткого диска (цю секцію я прописав на попередньому кроці, коли налаштовував завантаження Windows 7 з VHD). У моєму випадку з основної 64-розрядної системи це буде виглядати так>
Якщо завантажити систему з VHD і проробити те ж саме, то ми побачимо аналогічну картину, але тільки шляху всіх "device" поміняються. Те, що описано нижче, можна робити з будь-якої системи;
- Щоб уникнути помилки запускаємо "Блокнот", копіюємо в нього вміст екрану через буфер обміну (екран командного рядка -> права кнопка миші -> "Виділити все" -> "Enter" -> "Блокнот" -> "Правка / Вставити") та зберігаємо в довільний текстовий файл. Власне кажучи, нас цікавить "Ідентифікатор".
- Створюємо нову завантажувальний запис шляхом копіювання знайденої і даємо нове ім'я цього варіанту. Використовуємо тепер збережене в блокноті в зворотну сторону для зручності підстановки ідентифікатора:
bcdedit / copy {5c2a7c3c-a04e-11de-9dac-b90d3342b585} / d "Windows 7 VHD 128" - природно, в вашому варіанті ідентифікатор буде зовсім іншим.
Запустимо ще раз bcdedit без параметра і переконаємося, що новий запис з'явилася. Поки вона нічим крім імені не відрізняється від вихідної.
- Новий запис треба доповнити:
bcdedit / set {5c2a7c3c-a04e-11de-9dac-b90d3342b585} kernel ntkr128g.exe- вказуємо, яке ядро потрібно вантажити;
bcdedit / set {5c2a7c3c-a04e-11de-9dac-b90d3342b585} testsigning Yes- в зв'язку з тим, що контрольна сума ядра у нас змінилася, говоримо, що працюємо в тестовому режимі;
bcdedit / set {5c2a7c3c-a04e-11de-9dac-b90d3342b585} pae ForceEnable- про всяк випадок;
Дивимося, що вийшло>
Запускаємо нову систему і дивимося результат>
Судячи з того, що говорить про себе система, вона тепер працює з усіма 6 ГБ фізичної пам'яті.
"Монітор ресурсів" повідомляє, що під обладнання практично нічого не зарезервовано. Як ми тепер добре розуміємо, насправді зарезервовані всі ті ж 0,76 ГБ адресного простору, але воно тепер не вираховується з встановленого обсягу пам'яті (треба буде при нагоді подивитися, як це місце звучить в оригіналі англійською мовою. Можливо це "труднощі перекладу ").
Дивимося діапазони зареєстрованої в системі пам'яті>
Як і очікувалося, додався новий великий діапазон пам'яті вище 4 ГБ.
Порівняльне тестування роботи Windows 7 x86 з ядром ntkr128g.exe
Для того, щоб розвіяти останні сумніви і підвести остаточний підсумок наших досліджень, запустимо що-небудь вимагає багато оперативної пам'яті. Найперше, що спадає на думку, це віртуальні машини в VirtualBox. У мене вже є кілька готових віртуальних машин, створених в основний робочої системі з Windows 7 x64.
Наша тестова система з Windows 7 x86 хоч і працює з віртуального диска, але нічого спільного, крім диска VHD, з віртуальною машиною не має. Вона прекрасно бачить все фізичні диски, які встановлені в моєму комп'ютері, завдяки чому підключити готові віртуальні машини в VirtualBox не складає труднощів. Природно, в новій Windows 7 x86 попередньо треба встановити сам VirtualBox.
Призначимо кожної віртуальної машині, скажімо, по 1 ГБ пам'яті і почнемо запускати їх по черзі, спочатку в початковій системі, яка бачить лише 3,24 ГБ, а потім в "скоригованої".
У вихідній системі вдалося стартувати чотирьом віртуальним машинам, однак, як видно з представленого фрагмента екрана, на цьому все і закінчилося - "Unable to allocate and lock memory ... Please close applications to free up memory ...". Віртуальні машини ні на що не реагували і вимикати їх довелося аварійно.
А тепер повторимо наш екстремальний експеримент в "скоригованої" Windows 7 x86>
Як видно з представленого фрагмента екрана, запущені чотири віртуальні машини Linux, яким відведено по 1 ГБ пам'яті, і одна Windows XP з 512 МБ ОЗУ.
Можете мені повірити, можете перевірити, але все чудово працювало. Я по черзі переключався в різні віртуальні системи і запускав в них наявні програми, паралельно запустив браузер на хості - ні гальмування, ні будь-яких помилок не спостерігалося. Не знаю, як вам, а мені сподобалося.
Чи варто використовувати Windows 7 x86 з модифікованим ядром (з підтримкою до 128 ГБ оперативної пам'яті)
Рекомендувати зі сторінок блогу використовувати розглянутий варіант збільшення фізичної пам 'яті для 32-розрядних версій Windows я, природно, не можу і не буду. Для цього є дві вагомі причини:
- Порушення ліцензійної угоди з Microsoft, причому як би не в трьох місцях, а ми нічого порушувати не хочемо. Звичайно, при бажанні можна знайти кілька пом'якшуючих вину обставин. Наприклад, таких як, то, що вартість однотипних версій Windows різної розрядності однакова і своїми діями ми не завдаємо фінансового шкоди Microsoft. Або те, що при установці в комп'ютері пам'яті розміром 4 ГБ треба ще подивитися, хто кому і що повинен - в ліцензії підтримка такого обсягу заявлена, але, як ми тепер знаємо, насправді її немає. Але, все ж, порушення воно порушення і є. Будемо вважати, що все, що ми робили, було тимчасовим і на благо науки ;
- Немає ніякої гарантії, що в вашому комп'ютері не використовуються пристрої з "дурними" драйверами, робота яких в режимі PAE з адресами фізичної пам'яті вище 4 ГБ призведе до краху системи.
Мабуть доведеться закінчити наше обговорення секретів великий пам'яті в 32-бітових операційних системах банальної рекомендацією - якщо плануєте збільшити оперативну пам'ять комп'ютера до 4-х і більше ГБ, або збираєтеся придбати новий комп'ютер з таким обсягом пам'яті, задумайтеся про перехід на 64-розрядну операційну систему .
Ну якщо вже з x64 стосунки не складаються категорично - читайте все ще раз уважніше.
Чи не простіше відразу перейти на 64-розрядну версію і про все забути?Дуже добре, але як реально здійснити це рішення?
Ціна Windows x64 не відрізняється від Windows x86, але де її офіційно взяти і не платити при цьому додаткові гроші?