In the old days, "updating" an operating system or program meant installing
an entirely new version of the software. Then Microsoft and some software
vendors started posting "patches" on bulletin boards, then FTP sites, and
eventually on the Web. Strangely, they didn't actually tell anyone that those
patches were there, but they assumed that intrepid power users would unearth
them and somehow get them installed.

This primitive state of affairs ended a few Windows versions ago when
Microsoft introduced Windows Update, a service that made it much easier to find,
download, and install security patches, bug fixes, software and certified driver
updates, and service packs. Software vendors followed suit, and it soon become
common to have a "Check for Updates" feature in a software package so that you
could remain up-to-date.

Having the latest Windows updates and the latest versions of programs is a
real boon because it makes computers more secure and more robust. However, it
doesn't come without a cost. One of the biggest productivity killers today is
the "Reboot Required" message you see all too often after installing even what
seems like a minor patch. This dreaded message means that you have to save all
your work, shut down your running programs, restart the system, and then open
all your programs, windows, and documents all over again. It's frustrating, and
it almost always seems so unnecessary. Why is there so often a need for a
restart after patching Windows or a program?

The short answer is that it's not possible to overwrite a running executable
file or dynamic link library (DLL), which the operating system locks while the
program is in use. If the update includes a new version of a running executable
or DLL, and that executable or DLL can't be shut down, the only way to perform
the update is with a reboot, which ensures that all executables and DLLs are
unloaded.

Why can't you just close the running program? It's not that easy,
unfortunately. For one thing, you can't be sure these days when you shut down a
program that you're shutting down all instances of the program in memory.
Consider Microsoft Word, for example, which can be running not only in the Word
window, but also in Outlook as the email editor, in Internet Explorer when it
displays a .doc file, and so on. For another thing, many executable files
operate in the background, and you don't even know they're running, so there's
no interface for shutting them down.

Of course, it's silly to unload the entire system just to patch what could be
a single running file. Fortunately,
Windows Vista is tackling this absurdity
with the new Restart Manager technology. Restart Manager does three things:

It looks for all the processes that are using the file that needs to be
updated.

It shuts down all those processes.

After the updates are applied, it restarts those processes.

The real trick here is the way that Restart Manager performs these restarts
in programs designed to work with Restart Manager. It doesn't just start up the
program and leave you to fend for yourself by reopening all your documents.
Instead, Restart Manager preserves the exact state of each running process and
then restores that state upon restarting the process.

So if you're working in Word on a document named Budget.doc and the cursor
was in line 10, column 20, Restart Manager not only restarts Word, but it also
opens Budget.doc and restores the cursor to line 10, column 20. (Microsoft calls
saving a program state in this way "freeze-drying" the program.)

Note that the full functionality of Restart Manager is available only to
applications written to take advantage of it. Office 2007 is the only program I
know of that has this capability, but expect most major applications to become
Restart Manageraware in their next versions.

For programs that don't support Restart Manager, Windows Vista introduces a
new idea called "side-by-side compliant" DLLs. This technology enables an
installation program to write a new version of a DLL to the hard disk, even if
the old version is still in use. When you shut down the program, Vista replaces
the old version of the DLL with the new one, so the update will be complete the
next time you start the application.

All of this means that updates should require far fewer reboots in Vista than
in XP. Not that reboots will never be required, however. In particular, there
will always be patches that must update one or more core operating system files.

By definition, core operating system files run at startup and remain running
as long as the system is turned on, and it's not possible to shut them down
without shutting down the entire OS. (Technically, you can rename the file and
then install the new version under the old name, but that can lead to all kinds
of system problems.) In these situations, there will be no choice but to reboot
to apply the patch. Hopefully, however, Vista's faster shutdown and startup
times will make this less of a headache as well.