To view parent comment, click here.
To read all comments associated with this story, please click here.
But at the end of the day, I want control over my operating system. I'll decide whether or not something is deleted, whether or not it is over written. UNIX treats me like an adult and says, "if you want to do that, you know the risks, you're a big boy".
But it continuously fails everytime; as pointed out by one person, claiming that a file is 'in use' but never used; claiming an application is in use even though the application has been killed (and all dependencies). If Microsoft can't get it right, then they should take the UNIX approach until such time that they can get their 'secure solution' working.
But when things go pear shaped you end up with half finished updates. I've had numerous updates fail from the very first Windows - all due to this stupid 'locking' idea Microsoft adopted.
Like I said, give me the end user power, if I balls up my system, its because I do so of my own choice, don't think that you as the operating system know what I want as an end user. If I want to over write, delete or modify a file, I want to do it for a good reason.
While I agree with you in a general way, it doesn't fail every time. It doesn't even fail every thousand times. Considering how many files are opened and closed even by the hour, it is probably close to a one in a million thing.
But I do agree. And if you really must do it that way, at least give us fuser. a simple fuser -k could have saved me quite a few reboots, it would be a simple solution to a stupid issue.
But at the end of the day, I want control over my operating system. I'll decide whether or not something is deleted, whether or not it is over written. UNIX treats me like an adult and says, "if you want to do that, you know the risks, you're a big boy".
And that would work really well for most Windows users...
And it is ok 99% of the time, unless you do something you shouldn't. Thats your fault though, not a fault of unix.
Its a lot simpler and less error prone than you make out. Different versions of a library are almost always Newer versions which are also backwards compatible with older versions. They either add features whilst keeping the interface and old features intact, or they fix bugs in existing features whilst keeping the behaviour the same. If an app worked with an older library it will work just the same with the newer one. All you need to do to make sure your app is using the newer library is close it and re-open it. If you're worried about the newer library containing bugs that will crash your apps...consider that this is just as likely to happen in windows and has nothing to do with what we're talking about.
I've used Linux for 6+ years now and never noticed a problem with library versions. All I noticed is that reboots are only necessary if I'm upgrading the kernel.
Windows takes the safe approach of only updating libraries that are not in use. I'm sure you'd wind up with weird glitches if your apps were using multiple versions of GDI simultaneously. The Windows approach is "It may be ok to update this now, or it may not. Just to be safe, let's not update it until we can guarentee it's safe."
safe approach? or easier approach? Its just the way they chose to do it. admit that its not as good...
The Vista implementation tries to free up libraries, and if it can, will then update them in place.
and if it cant free them up? we then have the same problem we always had, with no solution. reboot?
They aren't used "simultaneously", at least not in the way you're implying. To put it in a simplistic manner: running processes have already read the previous version of the library and have everything that's needed with them. New processes will read the new version. The replacement of the library on disk happens transparently, and atomically, may I add.
What you probably mean is that at some point you may have two processes running with different "snapshots" of files (config files, libraries etc.) That happens to be one of the most useful and powerful features of *nix OS's. It does extremely little harm (most of which is purely academical) and a lot of good.
Consider for example that I can run the same application several times side by side with different libraries and configurations and compare them first-hand. Doing the same in Windows would require duplicating the entire install base of the application and tweaking each copy.
If you want practical uses, they're all around us. I for instance tweak my fontconfig settings by launching several gcolor2 processes and changing my .fonts.conf in between. Then I can compare the font rendering variants in much greater detail.
"Unix systems gladly replace system libraries that are in use"
Not really
usually you have the library abailable as:
liblibrary.so.1.2.3
and two symbolic links
liblibrary.so.1.2 -> liblibrary.so.1.2.3
liblibrary.so.1 -> liblibrary.so.1.2.3
What happens if someone "updates" on linux to liblibrary.so.1.2.4 ?
very simple: the old version is kept for programs which need the old one, and the symbolic links are reset to point to the new version.
And the new version has to be binary compatible with the old one, otherwise it would have to be a 2.0.0 release.
I experienced not one updating problem due to replaced libraries in 8 years of Linux usage. What happened was a mangled Kernel after a Kernel update (must have been too serious byte-flipping on the hardware or in the wire, because a re-download and reinstall cured the problem).






Member since:
2007-12-16
Unix systems gladly replace system libraries that are in use, and just hope that not problems happen because two different versions of the same library are in use simultaneously. The further away from the core libraries you get, the lower the odds of a problem, but it's still a risk. The Unix approach is basically "Let's just go ahead and do it, it'll probably be ok."
Windows takes the safe approach of only updating libraries that are not in use. I'm sure you'd wind up with weird glitches if your apps were using multiple versions of GDI simultaneously. The Windows approach is "It may be ok to update this now, or it may not. Just to be safe, let's not update it until we can guarentee it's safe."
The Vista implementation tries to free up libraries, and if it can, will then update them in place.