Crosmando: It's 2015 and yet for all the advances in software, we STILL haven't gotten past the need to restart your computer after many Windows updates. Is Windows 10 going to solve this?
Two main reasons really. One is that it is important when security updates are installed that all applications affected by them end up using the security updates immediately. This is a problem because applications are already running on a running system, so if the libraries that an application uses get updated on-disk, the in-memory copy the app is actively using already will be the old insecure version. Whether they are desktop apps, background apps or system level apps they all need to be restarted cleanly in order to switch to using the new libraries and possibly other system files that just got security updates. Otherwise the system or the applications running may still be in a vulnerable state even though the updates are installed. The easiest way to ensure this happens is to require a reboot. From a technical perspective, the reboot may not be absolutely necessary if the person running the computer knew exactly which running applications needed restarting and had the knowledge and skill to restart them all. Since that's generally not going to be the case with the average computer user, and it wouldn't work for all updates anyway - again the easy solution is to require a reboot to ensure all apps are restarted and using the new code. In some cases this reboot is not strictly necessary as such but may be forced by Microsoft as the simplest way to guarantee updates are applied.
The second reason is more mandatory though and has to do with how file locking is done in Windows. One of the lead developers of the Samba project, Jeremy Allison once
wrote a nice whitepaper on the complexity of reliable file locking in cross platform software development and how insane it was. Essentially, unlike a system like Linux where files are not locked by default when opened, apparently Windows APIs do lock files by default when opened even if the program doesn't particularly need them locked, and it is up to the app developer to tell Windows to not lock the files. This is the opposite of how it is in Linux and UNIX systems. As a result, most programmers tend to use the defaults which results in files being opened and locked making them unable to be replaced while they are being used. It is basically a poor design decision made by Microsoft a long time ago which can not be changed now without breaking tonnes of programs that now rely on that default behaviour that do need file locking. Since open files can't be replaced while open, the files need to be closed, and that often means the applications that open those files must be closed too. Security updates often affect critical operating system components that can't be shut down on the running system without causing a cascade of problems to other running programs and so the only safe way to replace open files without causing system instability or other problems is to schedule the files to be updated at shutdown or reboot, then reboot the system and let the files get updated and the system come back up.
Windows will most likely always have this limitation because fixing it now would mean breaking programming assumptions that go back 2 decades or more in Windows and wreaking havoc on software compatibility.
It's really too bad Microsoft designed it this way as it causes users no end of annoying problems, like being unable to move, delete or rename a file that is currently in use. In Linux you can move, delete, rename files and directories whenever with pretty much complete free reign whether they are in use or not and everything just works exactly like one would want it too.
So in a nutshell, Windows updates will always need to reboot so long as they affect files that may be open and require system shutdown to resolve, or to which there is no reliable way to install the update while the system is running without creating a problem or a potential problem. Some updates don't hit this issue of course and don't require a reboot but such updates are rare cases in Windows for sure. :)