Чому Windows хоче перезавантажуватися так часто?
Якщо є одна скарга, майже всі, здається, мають відношення до Windows, це те, що вона хоче перезавантажуватися так часто. Незалежно від того, чи це для оновлення Windows або просто під час інсталяції, видалення або оновлення програмного забезпечення, Windows часто просить перезавантажити комп'ютер.
Windows зазвичай має перезавантажити систему, оскільки не може змінити системні файли під час їх використання. Ці файли заблоковані і можуть бути змінені лише тоді, коли вони не використовуються.
Що робить перезавантаження?
Windows не може оновлювати або видаляти файли, що використовуються. Коли Windows Update завантажує нові оновлення, вона не може негайно застосувати їх до системних файлів Windows. Ці файли використовуються і заблоковані від будь-яких змін. Щоб встановити ці оновлення, Windows має вимкнути більшу частину операційної системи. Потім Windows може перезавантажити систему та завантажити оновлені файли під час завантаження.
Перезавантаження також можуть знадобитися при оновленні або видаленні певних типів програмного забезпечення. Наприклад, якщо ви використовуєте певну антивірусну програму або драйвер апаратного забезпечення, який занурюється в систему, його файли будуть завантажені в пам'ять і захищені від змін. Під час оновлення або видалення файлів, що використовуються, Windows може знадобитися перезавантажити комп'ютер і змінити файли, перш ніж система повністю запуститься.
Перезавантаження Windows Update
Корпорація Майкрософт часто випускає патчі для Windows, причому більшість з них прибуває на "Patch Tuesday", другий вівторок кожного місяця. Більшість цих оновлень змінює системні файли, які неможливо оновити під час роботи Windows, тому вони потребують перезавантаження. Однак не кожен Windows Update вимагає перезавантаження. Наприклад, оновлення для Microsoft Office не повинні вимагати перезавантаження - ці файли можна вивантажити з пам'яті, перезавантаживши Office.
Windows заважає вам перезавантажуватися, оскільки оновлення безпеки не встановлюються, поки ви це не зробите. Корпорація Майкрософт представила спливаючі вікна, які заважають вам перезавантажити комп'ютер і навіть автоматично перезавантажити комп'ютер ще в перші дні Windows XP, коли черв'яки, як Blaster, Sasser і Mydoom, були дикими. Корпорація Майкрософт хотіла забезпечити швидке перезавантаження кожного користувача після отримання оновлень, щоб вони не були заражені. Оновлення не допомогли б, якщо люди чекали кілька днів або тижнів перед перезавантаженням і тим часом стали інфікованими.
Встановлення, видалення або оновлення програмного забезпечення
Програмні програми іноді хочуть перезавантажити комп'ютер під час інсталяції, видалення або оновлення. Це може бути тому, що вони використовують низькорівневі системні файли та драйвери, які не можна оновлювати або видаляти на льоту. Наприклад, скажімо, ви видалите антивірусну програму. Деінсталятор, ймовірно, не зможе негайно видалити всі файли, тому потрібно перезавантажити комп'ютер. Деінсталятор запланує видалення файлів, і Windows автоматично видалятиме файли під час наступного завантаження комп'ютера.
Деякі програми можуть також вимагати перезавантаження після інсталяції. Наприклад, коли ви встановлюєте антивірус, він може негайно перезавантажитися, щоб він міг спостерігати за процесом запуску. Деякі драйвери апаратного забезпечення низького рівня можуть потребувати перезавантаження, перш ніж вони зможуть функціонувати. Звичайно, також можливо, що деякі інсталятори програм можуть попросити вас перезавантажити комп'ютер, коли це не зовсім необхідно.
Як Windows розкладе файл переміщує і видаляє на перезавантаження
Windows пропонує API, який розробники програм можуть використовувати для переміщення, перейменування або видалення використовуваного файлу. Програма запитує у Windows перейменування або переміщення файлу, коли комп'ютер перезавантажується, і запит записується до системи HKLM CurrentControlSet Керування сеансами PendingFileRenameOperations у реєстрі. Коли Windows завантажується, вона перевіряє цей розділ реєстру і виконує будь-які операції з файлами, які програма вимагає.
Ви можете переглянути список відкладених змін файлів і запланувати власні ходи і видалення за допомогою утиліт PendMoves і MoveFile SysInternals. Це дозволяє видаляти та переміщати файли, які ви не можете видалити, оскільки вони наразі використовуються. Існують і інші утиліти, які пропонують перемістити або видалити файли під час перезавантаження, і всі вони працюють, записуючи цей розділ реєстру Windows. Деякі утиліти також дозволяють розблокувати заблоковані файли та видалити або перемістити їх, але це спричинить проблеми, якщо ви спробуєте розблокувати та змінити файли, які система.
Щодо Linux та інших операційних систем?
Якщо ви коли-небудь використовували Linux або іншу операційну систему, ви, напевно, помітили, що Windows хоче перезавантажуватися частіше, ніж вона. Linux просто не заважає вам перезавантажуватися, як це робить Windows, навіть після встановлення системних оновлень. Це правда, але це не так просто.
У Windows файли, що використовуються, зазвичай блокуються і не можуть бути змінені або видалені. У Linux файли, що використовуються, зазвичай можна змінювати або видаляти. Це означає, що в системі Linux ці файли системної бібліотеки можуть бути негайно оновлені без перезавантаження. Будь-які файли, що використовуються, можуть бути негайно видалені.
Ось улов: зміни не обов'язково набудуть чинності, доки ви не перезавантажитеся. Наприклад, якщо ви встановите оновлення для системної бібліотеки, файли на диску одразу оновлюватимуться, але будь-які запущені процеси, що використовують цю бібліотеку, все одно будуть використовувати стару, небезпечну версію. Якщо ви оновите програму, нова версія цієї програми не буде використовуватися, поки ви не закриєте програму і не перезавантажите її. Якщо ви встановите нове ядро Linux, ви не будете використовувати нове ядро, доки ви не перезавантажите комп'ютер і не завантажиться в нове ядро. Є кілька способів перейти на нове ядро без перезавантаження, але вони, як правило, не використовуються в системах Linux Linux і більше стосуються серверів, які вимагають максимального часу роботи.
Іншими словами, перезавантаження часто досі необхідно, щоб переконатися, що важливі оновлення вступили в дію в Linux. Звичайно, якщо ви працюєте на сервері, а час безвідмовної роботи важливий для вас, ви можете обійти необхідність оновлення, перезавантаживши ці процеси. Але, якщо ви звичайний користувач стільниці, ви, ймовірно, просто хочете перезавантажити комп'ютер.
Доброю новиною є те, що з часом перезавантаження стало менш необхідним. Тепер Windows може поміняти багато типів драйверів - графічних драйверів, наприклад, - без перезавантаження системи. Сучасні функції безпеки (наприклад, увімкнення брандмауера Windows) зробили Windows більш захищеним, тому Windows 8 пропонує триденний пільговий період для перезавантаження після оновлення Windows.
Зображення: Anders Sandberg / Flickr