Originally on "ThatsNotaBugItsaFeature":
On Windows, when you install a new program instead of the computer crashing (a bug) it asks you to restart and hence make your application you just installed work better (the feature). This is just a guess.
Bad guess. Unix machines do not require a restart to access new programs after installation. Windows machines do, because that portion of Windows does not have a good way to re-read its initialization data.
I guess you've never done a kernel rebuild to change a configuration. :-) Windows, however, has taken this to an extreme by requiring every application install also be an OS patch.
Many, if not most, Windows programs actually don't require a restart after installation, even if they ask for it. There are only a few limited circumstances I can think of that actually require a restart, such as if a driver is installed, or if a system-level DLL is updated or replaced. However, it's become so commonplace for installers to ask for a restart (probably from following MS's example) that practically everyone does it nowadays, whether it's needed or not. -- MikeSmith
Of course this should be true. Too many flakey windows machines seem to be (temporarily) cured by a restart - most tech support will ask you to do that as one of the first 'fixes' they come up with. Why this is acceptable to the PC using public baffles me...
It is unacceptable to me. If an install program asks me to reset, I tell it not to and continue using the machine until it would be reset anyway. However, when it comes to tech support saying to reset (the first thing they always say when I call them about anything), I grumble to them about never needing to reset the Sun on my desk. Then I reset, because I know that under Windows 9x, the address space between 2 and 3 gigs are unprotected, and that is where shared DLLs tend to run.
In Windows, if one process has a file open, no other process can rename or delete the file. (Unix doesn't have this problem, because in Unix, the identity of a file is separate from the directory entry that points to it.) The only way to close all open files is to reboot the OS. Therefore, when InstallShield attempts to, say, update a DLL that is being used somewhere else, it sets up a script that updates the DLL at boot-time and then asks the user to reboot. -- SethGordon
- This is untrue. If your process opens a file with the right share mode (FILE_SHARE_DELETE = 0x00000004 for Win32/COM people; System.IO.FileShare.Delete for .NET people), you will allow subsequent attempts to delete or rename the file, independently of what you do with the file. People just don't bother (enough). There are, of course, similar flags allowing read or write access as well. Now, you can argue that this should default to everything being allowed, but that's a different kettle of fish.
In all honesty, a huge driving force behind why Unixen don't usually demand reboots whereas Windows does, is because rebooting one single Windows workstation only cuts 5 minutes of one single employee's work schedule, whereas if you reboot an Unix production server, the whole enterprise goes offline and by the time you get it back up and running you have clocked like 4 days of total inactive employee time. -- DaNuke?
It's better than three
reboots during the course of an installation ... which is what our Windows gurus insisted was the minimum for a particular PC client package I was familiar with (completely unrelated to my current employer). Yes, hardware installation was part of the process; but since the hardware used a serial port, it seemed extreme (in a bad way). -- PaulChisholm
The reason they need a reboot is because they think they have changed a file, and thus need to reboot. Then everyone emulates them, even if they don't install any DLLs.
Even more annoying is WindowsRebootAfterChangingSettings
- almost any system settings. The IP addresses are my personal hate - I regularly plug my laptop into three different networks and there is no way to avoid a reboot after entering the new network setting, nor any way that I know to automate the process. In contrast Linux allows me to run a script to switch from one to another, with no reboot at all. -- RiVer
Windows 2000 and XP do not require a reboot when changing IP addresses.
Fair comment - I'm paying the penalty of my refusal to fork out more money to that nice Mr Gates. Can you automate changing between IP addresses? I need to change my own IP address and the DNS setting at the same time. I made three icons on my Linux KDE desktop, click on the right one for the right network and plug my cable in, and it is done. Having invested maybe half an hour once to set them up, I now don't have to think about networks when what I want to think about is Physics, or Rent, or Wiki. -- RiVer
Try aliasing eth0 to eth1, eth2, eth3, etc. I'm not sure if it's possible, but if it is, you can then just do ifup eth#.
Yup, StartMenu?/Settings/Network&Dialup, select "Make New Connection", and set up as many network profiles as you need, each with its own little icon.
As an extra aside, in most cases when they really do need a 'reset', and even when they just think they do, in win95/98/me, goto Start | ShutDown
, go to 'Restart', and hit 'Left-Shift+Enter'. Works great for network settings, failed print drivers, etc... :)