Windows XP: Прискорення завантаження Windows XP

до чекати появи кнопки "Пуск" або три хвилини: солдат спить, служба йде.

Тим більше що витратити ці кілька хвилин на завантаження системи потрібно всього раз чи два в день. А ось вдома, коли нетерплячому підлітку хочеться після школи скоріше залізти в інтернет, поки батьки не прийшли і не побачили, що він там виглядає, - тут вже кожна секунда на рахунку.

І щоб не сполохати простих користувачів довгими нудними завантаженнями, творці Windows XP постаралися на славу - вперше одним із пріоритетних напрямків при створенні ОС було саме скорочення часу, необхідного на запуск системи, а так само на виведення її з режимів StandBy і Hybernate.

теорія

При створенні Windows XP була поставлена ​​задача домогтися на типовому домашньому десктопі таких показників:

- Вихід з режиму Standby (S3) - не більше 5 секунд;
- Вихід з режиму Hibernate (S4) - не більше 20 секунд;
- Звичайна завантаження до робочого стану - не більше 30 секунд.

Зрозуміло, без деяких винятків обійтися неможливо, це розробники визнали відразу. Наприклад, ПК з дисками надвисокої місткості, з деякими SCSI-адаптерами, з RD-Ram, пам'яттю ECC або з локалізованою для використання ієрогліфів ОС повинні завантажуватися трохи повільніше, але середньостатистичний ПК з Windows XP ніяк не повинен програвати за цим показником системам сімейства 9x. Власне кажучи, все це виявилося сьогодні можна здійснити на більш-менш сучасних комп'ютерах - завдяки впровадженню в життя вимог технологій OnNow (www.microsoft.com/hwdev/onnow) і ACPI (www.teleport.com/~acpi). А ось що конкретно було зроблено і чи вдалося задумане Microsoft чи ні, ми і спробуємо розібратися.

Хід повного завантаження Windows XP можна умовно розділити на чотири етапи:

- Завантаження основних файлів ОС в пам'ять;
- Ініціалізація пристроїв;
- Реєстрація користувача (Winlogon), старт системних служб і оболонки Explorer;
- Завантаження додаткового програмного забезпечення.

Оскільки набір автоматично завантажуються на старті системи програм на кожному ПК різний, то завершенням завантаження безпосередньо операційної системи логічно вважати закінчення завантаження її оболонки - Провідника, коли на екрані з'являється Робочий стіл. Тому за крайні точки відліку при вимірюванні часу були прийняті момент натискання кнопки Power і момент появи ярликів на робочому столі.

Якщо розглянути більш детально вийшов в результаті серйозних удосконалень хід завантаження Windows XP, то для умовного середнього ПК вона складається з наступних процесів, частина яких протікає паралельно:

- Початкова ініціалізація (зокрема - дисків) - в Windows XP становить близько 2 секунд проти 8 в Windows 2000;
- Ініціалізація драйверів пристроїв - залежить від конкретної системи, близько 4 секунд;
- Новинка Windows XP - попередній виклик "Prefetching", при якому з диска заздалегідь зчитуються ще не затребувані дані; здійснюється паралельно з ініціалізацією пристроїв - близько 6 секунд;
- Ініціалізація реєстру і файлу підкачки - ще пара секунд;
- Ініціалізація відеопідсистеми і установка потрібного дозволу екрану - теж у межах пари секунд;
- Реєстрація користувача і запуск служб - близько 8 секунд;
- Старт оболонки Explorer - 2 секунди.

Як бачите, в ідеалі має виходити не більше 20-30 секунд, що цілком порівнянно з часом завантаження набагато більш простих систем Windows 9x. А все за рахунок того, що в Windows XP прискорення відбувається буквально на всіх етапах завантаження завдяки таким прийомам, як попередній виклик даних, паралельна ініціалізація пристроїв, паралельне виконання різних етапів завантаження, відкладений запуск ряду служб, виключення ряду компонентів з процесу завантаження, об'єднання деяких сервісів в один загальний процес, та й при реєстрації користувача більше не була необхідною обов'язкове завершення ініціалізації мережі, а звернення до мережевих ресурсів при завантаженні зведено до мінімуму.

Крім того, Windows XP підтримує специфікацію Simple Boot Flag (www.microsoft.com/hwdev/desinit/simp_bios.htm), завдяки якій автоматично скорочується час, необхідний BIOS для проведення процедури самотестування POST в разі, якщо попередня завантаження ОС була успішною. Покращено системний завантажувач ntldr, який тепер вміє кешувати дані про файли і директорії, щоб скоротити звернення до диска при завантаженні.

Це призводить до чотирикратного прискоренню його роботи в порівнянні з Windows 2000. Причому якщо на ПК встановлено дві ОС - Windows 2000 і Windows XP, то цей ефект (але тільки цей - пов'язаний з удосконаленням ntldr) торкнеться і "вінтукея", так як його завантажувач буде переписаний більш просунутим. До речі, завдяки новим особливостям ntldr прискорився і вихід системи з сплячого режиму. Ну і крім того, є ряд дрібних доопрацювань: наприклад, прискорена ініціалізація реєстру, зменшено час на пошук PS / 2-клавіатур, а якщо у вас є мережева карта, чи не підключена до мережі, то ця обставина також більш не викликатиме затримок завантаження.

Оптимізована система розподілу ресурсів в багатьох аспектах, зокрема, покращено роботу сплячого режиму Hibernation - тепер в файл-образ оперативної пам'яті не скидаються порожні сторінки, алгоритм його компресії поліпшений, при записі на диск файлу hyberfil.sys використовується режим DMA, а запис на диск і компресія йдуть паралельними процесами. Оновлений алгоритм оповіщення пристроїв і додатків про зміну режиму електроживлення. В результаті прискорена не тільки звичайна завантаження, але і пробудження ПК в активний і чекає режимів.

Але особливої ​​уваги заслуговує ключовий режим читання - Prefetching. У попередніх системах під час завантаження при ініціалізації драйверів, завантаженні сервісів і оболонки дані з диска в пам'ять завантажувалися послідовно, у міру надходження запитів на них.

Тепер же Windows XP паралельно з виконанням інших операцій заздалегідь зчитує ці дані, не чекаючи запиту, що призводить до найзначнішого ефекту. Цей інтелектуальний алгоритм читання, застосовується і до запуску програм - після першого запуску кожної програми створюються спеціальні сценарії їх завантаження (вони зберігаються в папці \ Winnt \ Prefetch), в яких описано, які файли потрібно заздалегідь помістити в пам'ять.

Ці ж файли, вірніше, їх якийсь спільний знаменник - файл \ Winnt \ Prefetch \ layout.ini - використовується потім дефрагментатором для оптимізації розташування файлів на диску, що ще більше скорочує час завантаження.

До речі, ви можете самі перевірити, наскільки ефективний цей механізм стосовно завантаженні ОС - відключити Prefetching можна, встановивши в розділі реєстру
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters параметр "EnablePrefetcher" рівним "0".

Безпосередньо ж сам протокол завантаження ОС фіксується у файлі% WinDir% \ Prefetch \ notosboot-B00DFAAD.pf, який для більшої об'єктивності містить відомості про останні 8 запусках ОС і оновлюється кожного разу через 1 хвилину після завантаження системи (моніторинг завершується через 10 секунд після початку завантаження оболонки Explorer, так що під нього потрапляють і деякі автозавантажувані програми). Якщо його видалити, то наступна завантаження не буде використовувати попередній виклик і ви, швидше за все, виявите, що система вантажиться майже в два рази повільніше.

Але і це ще не все. У Windows XP з'явилася нова функція BootDefrag (або BootOptimize), суть якої полягає в наступному. Оскільки дефрагментація і оптимізація розташування на диску файлів, потрібних системі під час завантаження, вирішальним чином впливає на весь процес завантаження ОС, а користувачеві часто ліниво самому запускати дефрагментатор (не те щоб навіть часто, а майже завжди), то система тепер вміє сама - так сказати, без участі оператора - оптимізувати ці файли, причому не як їй заманеться, а грунтуючись на даних все тих же файлів notosboot-B00DFAAD.pf і layout.ini.

Правда, відбувається автоматична дефрагментація при простої системи - якщо користувач 10-30 хвилин після завантаження ОС не чинив ніяких операцій. А тому може статися так, що на вашій інтенсивно використовуваної системі файли опиняться не оптимізовані.

Перевірити, чи відбулася оптимізація, можна, зазирнувши до реєстру - якщо в розділі
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Dfrg \ BootOptimizeFunction варто параметр "OptimizeComplete" = "Yes",
то дефрагментація була проведена. Якщо ж цього поки не сталося, то просто увійдіть або ПК і залиште його хвилин на тридцять на самоті - Windows сама все зробить, і прискорення наступного завантаження буде помітно навіть на око.

Тільки запам'ятайте, що перед оптимізацією ПК зі свіжовстановленому ОС повинен мати в своєму багажі хоча б три перезавантаження для накопичення потрібних даних. Штатний дефрагментатор Windows XP не скасовує цю оптимізацію, так що користуватися ним можна без побоювання.

Якщо ж ви сумніваєтеся, чи працює взагалі у вас ця функція, або хочете її відключити, то перевірте в реєстрі наявність параметра, що включає BootDefrag:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Dfrg \ BootOptimizeFunction - параметр "Enable" = "Y".

В принципі, якщо система вже одного разу оптимізована і файли на диску розташовані належним чином, то навряд чи є сенс залишати цю функцію і далі працює - її відключення може ще трохи прискорити завантаження.

Практика

Але, на жаль, бажане не завжди відповідає дійсному. Для того ж, щоб з'ясувати, як йдуть справи в реальності, на цілком конкретних комп'ютерах, а не на абстрактних системах з тестових лабораторій в Редмонді, доведеться особисто озброїтися секундоміром і невеликий утиліткою, що дозволяє максимально об'єктивно вимірювати час завантаження системи і за результатами моніторингу примусово проводити оптимізацію завантажувальних файлів.

Називається вона BootVis, а завантажити її можна звідси -
www.microsoft.com/hwdev/fastboot/download/ BootVis_File.exe.
Утиліта ця примітна в усіх відношеннях і викликала своїм недавнім появою справжній фурор в деяких мережевих конференціях. У всіх новинах стверджувалося, що після її використання система починає завантажуватися на 30%, а то і на всі 50% швидше. Про те, наскільки це справедливо, ми ще поговоримо, а поки нас цікавить її робота в частині моніторингу завантаження ОС.

Крім того, що BootVis дуже наочним чином показує, скільки і на який етап завантаження системи йде часу (наприклад, паралельність виконання цих етапів на її графіках спостерігається більш ніж чітко), вона вміє відображати графік завантаження центрального процесора при старті системи, графік дискових операцій вводу -виведення, графік затримок при завантаженні драйверів і ще ряд даних, корисних не тільки для задоволення власної цікавості, а й для з'ясування причин заторів системи під час її завантаження.

Аналогічна інформація виводиться і для режимів StandBy і Hibernate - на часовій шкалі прекрасно простежується весь процес засинання і пробудження комп'ютера. Відомості, які виводить програма, до речі кажучи, не обмежуються лише графіками - ще більш детальну інформацію по кожному етапу завантаження ОС можна отримати, якщо скористатися контекстним меню, що з'являється при натисканні правою кнопкою миші на тій чи іншій ділянці графіка.

Користуватися програмою дуже легко, та й інсталяції вона не вимагає - досить розпакувати скачаний архів в будь-яку зручну папку або прямо на Робочий стіл. Після її запуску в меню "Trace" ви побачите чотири команди: Next Boot, Next Boot with Driver Delays, Next Standby / Resume, Next Hibernate / Resume.

Це режими тестування, які пропонує BootVis. Врахуйте тільки, що при тестуванні часу переходу в сплячий режим і повернення з нього поза контролем BootVis залишається зчитування файлу hyberfil.sys, в якому збережено вміст оперативної пам'яті, так що без секундоміра все-таки не обійтися. Для нашого ж випадку визначення часу завантаження Windows потрібно вибрати режим "Next Boot", після чого програма перевантажить систему і відразу після старту ПК почне відстежувати процес запуску ОС.

Як тільки Windows повністю завантажиться, на дисплеї автоматично з'явиться вікно BootVis зі всієї зібраної їй інформацією. Єдина умова її успішної роботи полягає в тому, що не можна виключати Планувальник завдань, інакше програма не зможе сама запуститися.

Отже, на тестовий ноутбук Sony VAIO FX101 (Celeron 600, 128 Мб, 10 Гб UDMA / 66), на якому "Міленіум" завантажується секунд за 20, була встановлена ​​друга система - Windows XP (розділ FAT32). Для початку відкладемо BootVis в сторонку і вимірювання зробимо виключно секундоміром, щоб не було ризику їх спотворити якимось впливом BootVis. Найперша завантаження Windows XP виявилася і найдовшої - крім того, що система не була жодним чином поки не оптимізована, під час першого її запуску ще мала місце і купа всяких дурниць типу рекламного туру по Windows XP.

Зайняла вона майже хвилину, що відразу нагадало сонну Windows 2000. До слова сказати, найперша завантаження не піддається моніторингу з боку ОС і не враховується при подальшої оптимізації, оскільки через своїх особливостей не є типовою. Далі робимо кілька перезавантажень ОС поспіль і отримуємо непогано повторюється, а значить об'єктивний результат - близько 40 секунд потрібно для запуску не оптимізованої Windows XP на реальному і не дуже відстале від життя ПК. Це, звичайно, рази в два гірше, ніж у Windows Me, але поліпшення по відношенню до Windows 2000 вже помітні (хоча до заявлених Microsoft 30 секунд нова система поки явно не дотягує).

Щоб спрацювала функція BootDefrag, спробуємо відразу ж після завантаження залишити систему в бездіяльності хвилин на 30. (Саме цього і не роблять багато користувачів, які не знайомі з особливостями Windows XP, через що їх система протягом довгого часу не показує всіх своїх можливостей. ) І дійсно - хвилин через 20 простою сама по собі виникає якась дискова активність, дуже схожа на процес дефрагментації, триває це все хвилин 5.

Подивимося, що вийшло. Перевантажуємо ПК - і виявляється, що Робочий стіл з'являється на екрані вже через 27-28 секунд! Ось вони, нові технології в дії! Не виключаю, що завдяки їм на деяких ПК Windows XP стане грузиться навіть швидше Windows Me. Так що можна з упевненістю сказати, що Microsoft на цей раз виконала свої обіцянки - система завантажується дуже навіть спритно.

Подивимося далі, який ефект дасть застосування настільки радісно зустрінута широкою публікою утиліти BootVis. Спочатку проведемо звичайний моніторинг завантаження, щоб з'ясувати, наскільки її дані збігаються з тим, що показує наш секундомір. Після кількох тестів отримуємо середній час завантаження ОС, рівне 25 секундам - ​​це на дві секунди менше підсумків ручного методу, що, загалом, не так критично і можна списати на похибки вимірювання і невелике розходження точок відліку.

Головне - результат стабільно повторюється від завантаження до завантаження, значить, можна переходити до найцікавішого експерименту: дозволити BootVis оптимізувати систему для отримання обіцяного 30-процентного приросту швидкості завантаження. Наші 25 секунд повинні після цього чудесним чином перетворитися в 15, що не просто круто, а дуже круто навіть для Windows Me! В меню Trace вибираємо пункт "Optimize System" і протягом декількох виснажливих хвилин очікування спостерігаємо, як після перезавантаження програма наполегливо шарудить жорстким диском, переміщаючи файли за своїми хитрим алгоритмам. Коли процес дефрагментації завершується, знову запускаємо моніторинг часу завантаження в BootVis, перенавантажуємо ПК і дивимося, що ж вийшло ...

А вийшли всі ті ж 25 секунд ... Де ж обіцяні 30 і 50% ??? Ефекту щось від програми ніякого! А вся справа в тому, що наша тестова система вже один раз сама себе оптимізувала - різниця між 40 секундами і 27 секундами якраз і становить ті самі 30%, і більше тут вже зробити практично нічого не можна. По крайней мере, зміни після дій BootVis занадто незначні, щоб бути гідними згадки.

Чутки ж про чудодійні можливості BootVis, мабуть, пішли від тих товаришів, які настільки активно використовують свій ПК, що у Windows немає ні хвилини вільного часу на проведення дефрагментації завантажувальних файлів.

Так що великих надій на цю програму покладати не варто - механізми, закладені в Windows XP, і без неї прекрасно справляються з оптимізацією процесу завантаження, треба тільки після чергового включення ПК дати системі півгодини відпочинку. BootVis ж лише робить все те ж саме, але за запитом користувача, у зручний для нього час. Головне ж достоїнство цієї програми полягає в тому, що після її застосування не стає гірше, так що пробуйте - якщо є бажання заради примарної надії качати 325 кб.

рекомендації

Паралельно з серйозним удосконаленням операційної системи в частині управління живленням і завантаження Microsoft дає рекомендації і користувачам зробити зі свого боку ряд зусиль для того, щоб допомогти Windows XP проявити себе у всій красі.

Правда, все це аж ніяк не означає, що рекомендації, які підходять до прискорення завантаження ОС, настільки ж благотворно позначаться на всьому іншому процесі спілкування з Windows - наприклад, використання NTFS не завжди виявляється виправдано на домашніх системах, а користуватися диском, що має всього один розділ, вкрай незручно. Почитати першоджерело ви зможете на сторінці www.microsoft.com/hwdev/fastboot, коротко ж рекомендації Microsoft зводяться до наступного.

- Використовувати файлову систему NTFS - вона, на відміну від FAT32, не вимагає приміщення цілої таблиці FAT в пам'ять при завантаженні, що помітно на дисках більше 8 Гб.
- Чи не використовувати конвертацію FAT32 в NTFS після установки ОС - видалити всі розділи FAT ще до установки ОС і дозволити їй створити файлову систему NTFS під час інсталяції.
- Використовувати тільки один розділ на диску.
- Встановити жорсткий диск в якості першого завантажувального пристрою.
- Використовувати всі налаштування CMOS Setup, що дозволяють скоротити час завантаження і проведення POST.
- Відключити логотипи, які часто зашиті в системний BIOS і BIOS відеокарти.
- Відключити в CMOS Setup пошук пристроїв на незайнятих IDE-каналах.
- Мати останню версію BIOS для вашої материнської плати з підтримкою функції Simple Boot Flag і оновлений BIOS відеокарти.
- Бажаний швидкий диск - від 7200 об. / Хв., Який має великий буфер.
- Необхідний достатній обсяг оперативної пам'яті - від 128 Мб.
- Необхідний сучасний процесор.
- Переконатися, що дефрагментація файлів завантаження функцією BootDefrag була проведена і спробувати використовувати утиліту BootVis - можливо, на вашій системі вона все ж доб'ється більш глибокої оптимізації.

- Скоротити число автозагружаемих програм і системних служб.
- Чи не використовувати шпалери Робочого столу та інші декоративні "прибамбаси".
Але, навіть скориставшись цими порадами, ви, швидше за все, вже не отримаєте великого приросту швидкості завантаження - так, наприклад, на моєму тестовому ноутбуці відключення ряду непотрібних сервісів і видалення всіх програм з автозавантаження дало виграш менше секунди, що, звичайно ж, на загальному тлі виглядає дуже навіть блідо.

В цілому ж, як ми переконалися - прогрес в благородному сімействі Windows NT наявності, шкода тільки, що власники більш звичною для багатьох Windows Me не можуть скористатися для оптимізації своєї системи утилітою такого ж плану, що і BootVis.

Наскільки мені відомо, всі, що їм може допомогти в боротьбі за секунди, - це аналіз протоколу завантаження ОС за допомогою програми Boot Log Analyzer (www.vision4.dial.pipex.com) і невелика утиліта від тієї ж Microsoft - Devview (www. microsoft.com/hwdev/NewPC/download/ pnptool.exe), що показує, який пристрій і скільки часу вимагає для своєї ініціалізації при завантаженні системи. Особисто я після аналізу зібраних нею даних відключив непотрібні мені COM- і LPT-порти на своєму ПК, але виграш від цієї операції склав близько секунди.

Втім, не за секунди ми і боремося? За них!