7

Possible Duplicate:
Why do I need restart computer after installing new software?

That is to say, what might installing an application do such that it might require a reboot?

Corollary (just out of interest): Are there any things that don't necessarily require a reboot, but whereby it would be easier to just get the user to reboot than implementing some non-reboot solution?

4
  • What OS? It varies greatly. Aug 3, 2010 at 1:14
  • I've found myself wondering this as well. Aug 3, 2010 at 1:21
  • 2
    This doesn't sound like it's programming related.
    – kirk.burleson
    Aug 3, 2010 at 1:24
  • @kirk - Perhaps not programming per se, but certainly software engineering. I work on installers at work - I want to make sure I'm doing it right.
    – Smashery
    Aug 3, 2010 at 1:39

3 Answers 3

13

On Windows, you need to reboot because a DLL (or EXE) file cannot be replaced while it is in use. Some drivers and services do not support "unloading" and so you must reboot if you want to replace DLL or EXE files that are used by those. However, the majority of drivers and services can be restarted independent of the rest of the computer, so you can technically stop all of the processes using the file, replace the file, and restart them all again. But in most cases, when that list of processes is large, it's easier to just ask the user to reboot.

On Linux, you can replace files while they're used by running processes. That has the disadvantage that any existing processes will continue to use the old version of the object (until it's restarted), but any new processes you start after updating will use the new version. If there are any shared data structures or anything like that, then the concurrently-running versions could cause system instability. This is why on Linux you will typically still restart the individual processes that depend on an object file when you update it (there's also not much point continuing to run with the old version if you just did an update - particular if it was a security update).

1

When you replace the operating system kernel, it is far easier to reboot the operating system than to try to replace the kernel while running.

It is possible to replace the kernel while the system is running, but the consequences would mean either internal-kernel data structures cannot be re-organized or routines must be written to modify data structures in-place before running new code.

Replacing the system standard C library might justify the reboot: you have to restart all processes on the system to take advantage of the new C library anyway. But, you can just /sbin/telinit u to force init to use the new library, restart all your services, then restart X if you're running it, and be done, without a reboot.

So, it's just the kernel that requires it.

-1

what might installing an application do such that it might require a reboot?

Nothing. It's a thing lawyers insist on. There's no technical reason for a reboot. It's all just fluff.

what might installing an application do such that it might require a reboot?

Any system-wide setting that's changed. Anything in /etc, for example. Some applications include kernel patches and drivers. Lots of technical changes to the OS configuration could lead to reboot.

easier to just get the user to reboot than implementing some non-reboot solution

What? What's a "non-reboot solution"?

2
  • A non-reboot solution would be a solution for installing whereby you don't reboot.
    – Smashery
    Aug 3, 2010 at 1:35
  • You can't be serious about lawyers. As others have mentioned, it depends on the O/S, but on Windows there are legitimate reasons for requiring a reboot. There are also application installers that ask you to reboot for no good reason. I use the freeware program WhyReboot to find out what's going on.
    – boot13
    Aug 3, 2010 at 2:54

Not the answer you're looking for? Browse other questions tagged .