One of the primary complaints in the early versions of Windows NT was that it needed far too many reboots to be a viable enterprise operating system, particularly for servers. Those of us who had installed binary patches on VMS years
earlier could not figure out why Windows NT needed so many reboots. In Windows NT 4.0, you could not even change an IP address without rebooting (according to the documentation).
In Windows 2000, Microsoft started a push toward minimizing the number of reboots the OS required. The community had mixed feelings, and at least for a time there were Web sites that tried to track uptime on individual servers on http://www.microsoft.com in an effort to discredit Microsoft and demonstrate that you could not keep Windows NT up consistently. Nevertheless, the number of reboot-required scenarios did decrease and the one that remained consistently was patching. Each time an update-usually of the security persuasion-was applied, the system typically needed a reboot, even for things that did not seem essential, such as IE.
To address this remaining set of required reboots, Windows Vista introduces the Restart Manager. Restart Manager is quite simple conceptually. Many applications and/or services need to be shut down to be updated. In the absence of an automatic way to do so, a trick used by some was to shut down just the service, install the update for it, and then restart the service. This avoided the reboot that would normally have been needed to update the service if it were running. Restart Manager essentially incorporates that functionality into the Windows Installer infrastructure. It will be able to update Applications that are written to take advantage of Restart Manager, or written to be installed and updated using Windows Installer, without a reboot in most cases. Restart Manager will automatically save the state of the application, shut it down, update it, restart the application, and restore its state in memory as it were before the operation. Windows Installer and Restart Manager can update normal user applications, services, and even the Windows Explorer shell this way. Only certain services judged critical to the computer's functioning are exempt:
-
smss.exe: The Session Manager sub-system
-
csrss.exe: The Client-Server run-time sub-system
-
wininit.exe: The Windows start-up application
-
logonui.exe: Windows logon user interface host
-
lsass.exe: Local Security Authority shell
-
services.exe: Services controller application
-
winlogon.exe: Windows NT Logon application
-
System: The operating system kernel
-
svchost.exe with RPCSS: The service host hosting the RPC Sub-System
-
svchost.exe with Dcom/PnP: The service host hosting the DCOM sub-system
While this feature will not eliminate reboots entirely, it will certainly reduce the number needed when Windows Vista needs patching. That in turn will improve uptake on security updates, thus providing a net security gain.
For more information on the Restart Manager, and information on how to write applications to take advantage of it, see http://www.msdn2.microsoft.com/en-us/library/aa373654.aspx.