How do linux systems upgrade packages whose files are in use?
I've been running gnu/linux on my system for many months now. One of the features I like best is the great package management system (I use debian, and apt simply rocks!). Keeping the system up-to-date is a breeze, and I've never faced a single problem while doing so. Well, there is this one question I have, and I can't seem to find the answer anywhere. Let's say, I am running an app, a never version of which is available. So I decide to retrieve and install the upgraded package. Now, the files for this app, including its own executable, will get overwritten by the newer versions, right? But this doesn't seem to be a problem for the existing program that is already running. Indeed, if I close and restart the same program, the newer version of it starts up. This seems to work for any package, be it a small music player, or even a critical package like libc6. I never get a message like 'The files that need to be overwritten by this newer package are in use, please close the applications that may be using them' (something most people who have used windows have experienced quite often).
So, how is the linux file access system different, that it allows such behind-the-scenes upgrades to magically take place? Is it because all running apps and libraries are completely loaded into memory? Anyway, I hope somebody familiar with the inner workings could give me some insight into this.
Regards,
MT
|