Ksplice Offers Rebootless Updates For Ubuntu Systems
sdasher writes "Ksplice has started offering Ksplice Uptrack for Ubuntu Jaunty, a free service that delivers rebootless versions of all the latest Ubuntu kernel security updates. It's currently available for both the 32 and 64-bit generic kernel, and they plan to add support for the virtual and server kernels by the end of the month, according to their FAQ. This makes Ubuntu the first OS that doesn't need to be rebooted for security updates. (We covered Ksplice's underlying technology when it was first announced a year ago.)"
They appear to be releasing this licensed as GPL v2, but they have a "terms of service" click-through, according to their screenshot.
That doesn't give me great confidence that they really understand the GPL....
The technology looks pretty cool, though.
If you're a zombie and you know it, bite your friend!
> Windows actually can replace a DLL that is in use by renaming the original then copying the new file into place. However, the Windows world prefers not to do this. Why?
Linux solves this with links. To pick a random example:
lrwxrwxrwx 1 root root 17 2009-06-21 19:04 /usr/lib/libqt-mt.so.3 -> libqt-mt.so.3.3.7 /usr/lib/libqt-mt.so.3.3 -> libqt-mt.so.3.3.7 /usr/lib/libqt-mt.so.3.3.7
lrwxrwxrwx 1 root root 17 2009-06-21 19:04
-rw-r--r-- 1 root root 7534253 2008-03-02 12:04
I'm showing here an output of ls. Say a program open libqt-mt.so.3. It gets 3.3.7. Now I install 3.3.8 while my programs are still running.
lrwxrwxrwx 1 root root 17 2009-06-21 19:04 /usr/lib/libqt-mt.so.3 -> libqt-mt.so.3.3.8 /usr/lib/libqt-mt.so.3.3 -> libqt-mt.so.3.3.8 /usr/lib/libqt-mt.so.3.3.8 /usr/lib/libqt-mt.so.3.3.7
lrwxrwxrwx 1 root root 17 2009-06-21 19:04
-rw-r--r-- 1 root root 7541660 2008-05-02 15:03
-rw-r--r-- 1 root root 7534253 2008-03-02 12:04
So when I install a package, all the new libraries get installed (and their dependencies) and after they are all installed, the symlinks get updated. If a program wants specifically 3.3.7 and is still using it, they can still have that. If they already have that library open, then it stays open. If a new program requests libqt-mt.so.3 then they get the new one.
The interesting thing in linux is that I can now delete libqt-mt.so.3.3.7. If there are any programs that have it open still, the OS will keep the file around. So only when the program quits will the file be really deleted.
For the other problems like:
> When you write code that communicates between processes, you generally expect that the same version of the code will be running in each process
Linux can never make that assumption in the first place, since you other process might not even be on the same machine (exported program) or it might be running in a scratchbox (a completely different environment) etc.