cellio: (avatar)
[personal profile] cellio
While waiting for assorted software updates to install today I found myself wondering... Mac OS and Windows usually need to reboot your machine to install updates. Yet I have, several times, seen Unix machines that I believe were being maintained with uptimes of more than a year. What's the deal? Is Unix just better able to support hot-fixes, or are Unix updates that rare? (Or am I wrong about the maintenance of those machines?) And if it's that Unix is better at updating, why does Mac OS, which is Unix-based, need to reboot so often? Mind, it's definitely better in this regard than when I was running Windows; this is a puzzle, not a rant.

Edit: Thanks for the comments thus far. I now understand more about how Unix is put together, and why Windows is different. Still not sure about Mac OS but comments suggest it could be UI-related (that is, the GUI might be more tied into the OS than is the case on Unix).

(no subject)

Date: 2010-11-18 03:37 am (UTC)
geekosaur: orange tabby with head canted 90 degrees, giving impression of "maybe it'll make more sense if I look at it this way?" (macosx)
From: [personal profile] geekosaur
OSX / Darwin has an additional little feature: it prelinks shared objects so they can be fast-loaded at non-conflicting addresses for most processes. The gotcha is, if a prelinked object is modified and then used before the prelink cache is generated again (as by an install while the system is running), Bad Things happen. (It's been known to require a complete reinstall to recover.) So starting in 10.5 Apple made most installs require reboots, specifically to insure that the prelink cache remains valid.

# # #

Many Linux/Unix admins don't want to reboot, hoping that the occasional (or not-so-occasional) kernel-based security hole won't affect them. I tend to consider that a bad idea these days.

That said, there's a (for-pay, although IIRC some distribution (Ubuntu?) has a reduced functionality version available to all registered users) technology called Ksplice that can patch a running kernel in many (most? all? haven't looked closely but I think the latter is impossible for logistical reasons) cases. It's been around for long enough that there could well be some Linux boxes with uptime > 1 year that use it to keep the kernel up to date on patches.

Expand Cut Tags

No cut tags