Защо Windows иска да рестартира толкова често?
Ако има едно оплакване, което почти всички изглежда имат за Windows, то е, че иска да рестартира толкова често. Независимо дали става дума за актуализации на Windows или само при инсталиране, деинсталиране или актуализиране на софтуер, Windows често ще изисква да се рестартира.
Windows обикновено трябва да се рестартира, защото не може да променя системните файлове, докато се използват. Тези файлове са заключени и могат да бъдат променяни само когато не се използват.
Какво прави рестартиране?
Windows не може да актуализира или премахва файлове, които се използват. Когато Windows Update изтегли нови актуализации, тя не може да ги приложи веднага към системните файлове на Windows. Тези файлове са в употреба и са блокирани срещу всякакви промени. За да инсталирате тези актуализации, Windows трябва да изключи по-голямата част от операционната система. Windows може да рестартира системата и да зареди актуализираните файлове, когато се стартира.
Рестартирането може да е необходимо и при актуализиране или премахване на определени видове софтуер. Например, ако използвате някаква антивирусна програма или хардуерен драйвер, който се закачва дълбоко в системата, неговите файлове ще бъдат заредени в паметта и защитени срещу модификации. Когато актуализирате или премахвате файлове в употреба, Windows може да се наложи да рестартира компютъра и да модифицира файловете, преди системата да се стартира напълно.
Рестартиране на Windows Update
Microsoft често издава пачове за Windows, като повечето от тях пристигат на "Patch Tuesday", втория вторник на всеки месец. Повечето от тези актуализации променят системните файлове, които не могат да се актуализират, докато се изпълнява Windows, така че те изискват рестартиране. Не всеки Windows Update изисква рестартиране. Например, актуализациите за Microsoft Office не трябва да изискват рестартиране - тези файлове могат да бъдат разтоварени от паметта чрез рестартиране на Office.
Windows ви кара да се рестартирате, защото актуализациите на защитата не са инсталирани, докато не го направите. Microsoft представи изскачащи прозорци, които ви затрудняват, за да рестартирате компютъра си и дори да рестартирате компютъра автоматично в ранните дни на Windows XP, когато червеи като Blaster, Sasser и Mydoom се разгорещиха. Microsoft искаше да гарантира, че всички ще се рестартират бързо след получаване на актуализациите, за да не бъдат заразени. Актуализациите не биха помогнали, ако хората чакаха дни или седмици преди рестартирането и се заразиха междувременно.
Инсталиране, деинсталиране или актуализиране на софтуер
Софтуерните програми понякога искат да рестартирате компютъра, когато ги инсталирате, деинсталирате или актуализирате. Това може да се дължи на факта, че използват системни файлове от ниско ниво и драйвери, които не могат да бъдат актуализирани или премахнати в движение. Например, да речем, че деинсталирате антивирусната си програма. Uninstaller вероятно няма да може да премахне всички файлове веднага, така че ще трябва да рестартирате. Uninstaller ще планира изтриването на файлове и Windows автоматично ще изтрие файловете при следващото зареждане на компютъра.
Някои програми може да искат да рестартирате и след като ги инсталирате. Например, когато инсталирате антивирусна програма, може да искате да рестартирате веднага, за да може да наблюдава процеса на стартиране. Някои драйвери за ниско ниво на хардуер може да изискват рестартиране, преди да могат да функционират. Разбира се, възможно е някои програмисти да ви помолят да рестартирате, когато това не е наистина необходимо.
Как Windows планира преместването и изтриването на файла при рестартиране
Windows предлага API, който разработчиците на приложения могат да използват за преместване, преименуване или изтриване на използван файл. Приложението иска Windows да преименува или премества файл, когато компютърът следващата се рестартира, и заявката се записва в HKLM System CurrentControlSet Контролен сеанс на управление PendingFileRenameOperations стойността в системния регистър. Когато Windows се стартира, той проверява този ключ на системния регистър и изпълнява всички програми за файлови операции, които са поискали.
Можете да видите списъка с предстоящите промени в файловете и да планирате собствените си ходове и изтривания с помощта на помощните програми PendMoves и MoveFile SysInternals. Това ви позволява да изтривате и премествате файлове, които не можете да изтриете, защото се използват в момента. Има и други помощни програми, които предлагат преместване или изтриване на файлове при рестартиране и всички те работят, като пишат в този ключ на системния регистър на Windows. Някои помощни програми също ви позволяват да отключите заключените файлове и да ги изтриете или преместите, но това ще доведе до проблеми, ако се опитате да отключите и промените файлове, от които системата зависи.
Ами Linux и други операционни системи?
Ако някога сте използвали Linux или друга операционна система, вероятно сте забелязали, че Windows иска да рестартира по-често, отколкото го прави. Linux просто не ви пречи да рестартирате, както прави Windows, дори след инсталиране на системни актуализации. Това е вярно, но не е толкова просто.
В Windows файловете, които се използват, обикновено са заключени и не могат да бъдат променяни или изтривани. В Linux файловете, които се използват, обикновено могат да бъдат модифицирани или изтрити. Това означава, че в системата на Linux тези файлове на системната библиотека могат да бъдат актуализирани веднага без рестартиране. Вероятно всички файлове в употреба могат да бъдат изтрити незабавно.
Ето го и уловката: промените няма да влязат в сила, докато не рестартирате. Например, ако инсталирате актуализация за системна библиотека, файловете на диска ще се актуализират незабавно, но всички работещи процеси, използващи тази библиотека, все още ще използват старата, несигурна версия. Ако актуализирате програма, новата версия на тази програма няма да се използва, докато не затворите програмата и не я рестартирате. Ако инсталирате ново ядро на Linux, няма да използвате новото ядро, докато не рестартирате компютъра и не стартирате новото ядро. Има няколко начина да преминете към ново ядро без рестартиране, но те обикновено не се използват в потребителските Linux системи и са повече за сървъри, които изискват максимално време за работа.
С други думи, рестартирането често е необходимо, за да се гарантира, че важни актуализации са влезли в сила в Linux. Разбира се, ако работите със сървър и ъптаймът е важен за вас, можете да преодолеете необходимостта от актуализации, като рестартирате засегнатите процеси. Но, ако сте нормален потребител на настолен компютър, вероятно ще искате да рестартирате компютъра си.
Добрата новина е, че рестартирането е станало по-малко необходимо с течение на времето. Windows вече може да сменя много видове драйвери - например графични драйвери - без да рестартира системата. Съвременните функции за сигурност (като включването на защитната стена на Windows) направиха Windows по-сигурен, така че Windows 8 предлага тридневен гратисен период за рестартиране след Windows Updates.
Кредит за снимката: Anders Sandberg / Flickr