Installation Complete! You must now restart your computer...

… for the changes to take effect. Or… You must now restart your computer to complete the installation.

Why?

This question came up the other day as I was installing some software on a friends computer. After the umpteenth viewing of that message and the numerous restarts, my friend finally asked me why it needed to do that.

I told him I didn’t know. It just does.

That was enough of a technical explaination for him, but not for me.

So… Why does a computer need to restart the computer to add or make changes to software?

Why would the install process on certain software programs need to restart the computer several times to complete the installation?

What’s going on in there?

You’re using Windows 95, right?

There are some routines and file handling things that only load when Windows starts up.

At least that’s how our technoid expalins it.

I don’t know the technical answer, but I do know this from experience. If you load multiple software in one shot, without restarting, you will get the ‘Blue screen O’ death’ when you do restart.

My Wag is that they are all competing for the same resources and DLL’s, causing the system to say, “Way to much conflicting information, I’m putting a stop to this”.

Why?

In order to work properly, complex installed software programs need to re-initialize with the new drivers and various other software components in place and integrated into the system registery. The system needs to reboot for the changes to the registery etc to become active and for the program components to be recognized and load correctly.
Re the “several times” issue there are layers of software components that need to have other components installed in order to install themselves correctly. The multiple re-boots are sometimes necessary to intialize these required
preliminary layers.

One of two reasons:’

  1. The programs on your computer often rely on a set of shared functions and routines which can live in memory. If any of these change or are updated, your computer needs to be restarted for the new functions to become loaded.

  2. Additionally, many programs come with their own libraries of functions which need to be “registered” with the operating system, so that programs can find them quickly and easily. Although this doesn’t strictly require a restart, the process isn’t always clean.

As a programmer, often the best course of action is to ask the user to reboot the machine to ensure that both changes have gone into effect.

(It’s my first post after lurking for ages! =))

evilhanz-

I hope your not implying that I brought you out of the closet, are you?

Because CnoteChris don’t play that way!

Kidding aside, thanks for the replies and welcome aboard evil.

So, basically, the software needs to make changes to the registry and flush out the RAM for it to work properly?

That makes sense. I guess. But…

Couldn’t you, being a programmer, simply have the computer restart Windows instead of the whole spiel and accomplish the same thing?

Welcome onboard!

>> Couldn’t you, being a programmer, simply have the computer restart Windows instead of the whole spiel and accomplish the same thing?

Yes, the installation program could and can restart windows but it asks you first “Do you want to restart your computer now?” That is so you can do any other tasks you may want to do before restarting.

It’s not really flushing out RAM (implying memory lost to “leaks” or filled with useless data); the problem is that certain DLLs have been changed. However, since these DLLs are in use by other programs, and cannot be dynamically changed without causing serious trouble for these other programs, the prudent solution is to reboot the OS so that the new versions can then be used. It is theoretically conceivable that these other programs could be stopped and restarted one-by-one, using the new DLLs but a reboot is a cleaner and safer option.

As for restarting Windows itself, rather than a reboot, this does not completely unload all elements of the Windows OS. (My memory fails me here and I cannot remember what is not unloaded; since this procedure is shunned by most techs and programmers anyway, I never gave it much thought.)
Time for a full reboot on a typical, stock PC is about 45 seconds compared to 35-40 for a quick reboot so the time saving is not really significant, anyway.

Actually, the likely cause of this BSOD is mismatched program/library/driver versions. If ProgramA needed OBSCURE.DLL Version 4.0 or higher and found Version 3.0, it installs 4.0 during its installation program. ProgramB comes along and looks at the installed OBSCURE.DLL (which is still 3.0) and sees that it is not the version it requires, which happens to be 3.2, so shazam, it queues up its copy of Version 3.2 to be installed. Now you reboot. Windows’ installer routines see the queue and upgrade OBSCURE.DLL, to Version 3.2 causing ProgramA to fail a horrible firey death and issue the dreaded BSOD. Note that well-written installation sequences can avoid this problem. Like most publishers pay attention to clean installation procedures.

If you are careful, knowledgeable, and/or lucky, you can get multiple apps installed in the same session without problems. The rule of thumb here is oldest app first but YMMV. My advice is to stick to rebooting between installs.

That’s nothing, some programs require that you turn your computer off & then on again. Which is actually better. For some reason, somethings don’t change unless you do that.

This is true for installing Macintosh software as well. If the installer has installed an Extension or a Control Panel with “INIT” code, and these need to be loaded in order for the new software to run properly, the operating system must be restarted because this code patches the OS code and it can only be patched in this fashion at startup time. (The OS is designed that way). Think of the operating system as the text of a Broadway play, and the extensions are the colored sheets of subsequent edits that replace the version in the text as of the time it was printed and distributed. The edits replace little chunks of the original text.

Not all software installed on a Mac installs Extensions or Control Panels, and if it doesn’t, it doesn’t require a restart.

On a PC, an installer may have: written to the registry (may require a restart?); edited one of the configuration files (requires a restart); replaced an old Dynamic Link Library (.dll) file with a newer one (requires a restart); added new DLL’s (may require a restart); added a Terminate and Stay Resident (TSR) file to the startup items (requires a restart); and probably a slew of other things I don’t known about. I’m not certain, but it may be that the Microsoft operating systems are set up to recommend a restart after the installation of any new software on the “can’t hurt / might hurt not to” theory.

Also, a lot of companies that sell “installer-maker” software to programmers and software companies have “restart after installation” the default for any new installer created, and I suspect that many programmers / sw companies don’t go in and uncheck it even when there is no reason to require a restart in order for their software to run.

CnoteChris:

sewalk has the reply you’re looking for, with one exception… It’s pretty darn impolite to reboot someone’s computer without asking.:slight_smile:

On another note, when an installation requires more than one reboot, it’s due to multiple, intertwining dependencies. When a developer prepares a program for distribution, best practice is to include all dependent libraries, whether the client machine needs them or not. You cannot simply trust that the latest whizbang DLL will be there. Some of these libraries, (data access components come to mind), have their own setup programs which are best left alone.

As an example, anyone who’s ever properly installed an NT server will tell you that if you don’t install the software and service packs in juuuust the right order, the results will be unpredictable. I like to think of it as the Goldilocks Method.

evilhanz

Supposedly Win2k doesn’t need to be rebooted after installing software. However, when I do install software on it, the software still says it wants to reboot. I usually play it safe and reboot.

Can anyone tell me if I can ignore the reboot request? If not, in what situations should I then reboot it?

It is interesting to note that not all operating systems require reboots for these types of things. I’m more familiar with Unix systems than anything else, and we Unix geeks do not have this problem. The only software upgrade that requires a reboot of a Unix system is the OS kernel, and with dynamically loadable kernel modules you can even add or replace hardware drivers on the fly without interruption to running programs. With some microkernel designs you can even replace the I/O system or the memory management system or even the scheduler itself.

So I’m curious to know what exactly is different about Windows or MacOS that they require a reboot to e.g. upgrade system libraries. I’ve heard that Windows DLLs do not use position independant code. Does anyone know if this is true and if it relates to the problem at hand? Or are DLLs a red herring and it’s because of the monolithic registry?

Bobort, I think the MacOS could allow most Extensions to load at any time rather than only at bootup, but the patches they make will be made to the OS as it exists in RAM (i.e., they have no effect on the System file on the hard drive or the toolbox code in the ROM itself), and the theory is that the one time when the code is in optimal condition to be patched (i.e., the values at various addresses are what they oughta be and not modified by misbehaviors and bugs) is right at startup. As you know, the MacOS memory architecture is not protected, which is one of the weaknesses responsible for the decision to head the Mac in your (Unix, via MacOS X) direction.

Since on some occasions it is nice to be able to load some Extensions at later times, and experience has shown that for this or that Extension it is generally safe to do so, there are a handful of shareware applications that let you do exactly that, one example being the CD/DVD-ROM driver Extension, allowing someone with an external CDROM or DVDROM drive to have the drive shut off at bootup, then decide to turn it on and use the hack to load the extension, which would not have loaded in the absence of a recognized drive at bootup time.

Just wanted to get in here and thank those that replied.

I guess it makes sense.

“It is interesting to note that not all operating systems require reboots for these types of things”

Not all programs require it either but it’s an excellent idea even if they dont ask you to.

I haven’t seen this explained, and I think it’s the main reason why installation requires a reboot (I’m a programmer who has done several Windows installation packages).

Certain DLL files are almost always in use by the operating system. If one is in use and the installer wants to update it with a new version, the installer puts it on the computer under a different name, and tells Windows (via settings in the Registry) to copy it to the correct name during boot-up.

This is the way to update shared files such as oleaut32.dll which you could otherwise never overwrite. I haven’t used a Mac since they were all-in-one boxes with black and white monitors, but I suspect there are similar issues there.

Not true.
There’s a large number of reasons for the reboot, depending on the program. The most common one are registry issues, activation of new DLLs, memory usage and, above all, inicialization of new versions of the AUTOEXEC.BAT and CONFIG.SYS.

Did you know there is actually a very stable version of Windows for the home user? Its called Whistler. You can buy it in 2001. Yep, 50,000 Microsoft workers were able to make a nice stable version. It’s actually W2000 but has support for more stuff…