Re: System Calls and User Mode
Posted: Tue Nov 22, 2016 11:17 am
Actually, even drivers rarely need a rebuild, as most are available as loadable modules today. Windows (especially prior to 7) has to reload the kernel for driver updates more often than Linux generally does, which is one of the reasons why LTS releases of Linux are often preferred for server use over Windows (though if Microsoft were to have an LTS branch which didn't perform non-critical updates as often, that might change).
Also, the majority of Linux users are running a binary distro such as Debian (which includes Ubuntu and derivatives of that such as Mint and Elementary) or Fedora, which means that the process isn't significantly different from that of Windows or MacOS - and if the distro uses the kernel hot-swapping, even a kernel update won't necessarily require a reboot (though not all of them use those yet); I don't know offhand if Windows or MacOS can kernel-hot-swap, though if Windows can it's probably only since 8 (which means that they are neck-and-neck on that).
Oh, and they had the update system set up for general applications as well as the system well before Windows did (though I think MacOS had them both beat, I'm not sure) - prior to Windows 8, the built in update system only applied to Windows itself, Visual Studio, and Microsoft Office. To be fair, setting up a system for downloadable updates is a lot easier when you aren't messing about with a lot of conflicting corporate interests, but even so, Microsoft could easily have set up a store system for other software vendors much sooner than they did.
Sorry, that was a digression.
Even for users of source distros such as Gentoo and Arch, or the handful who run without a distro and build everything manually, they generally don't need to recompile every time there is an update, unless they like living on the bleeding, frequently crash edge. Generally speaking, both for desktop and servers, most users will go with a binary distro unless they have such high performance demands that they have to squeeze every cycle and byte out of the system that they can (actually, in those cases they would general not update frequently, as updates mean re-tuning and often add bloat).
I personally prefer source distribution as a concept (though slim binaries or some other sort of AOT/JIT split would be even better IMO), but when I was using Gentoo, the implementation of the updates was appallingly poor; I would get conflicts on an almost weekly basis that would have to manually resolved, and the fact that it recompiles everything each and every time, rather than checking the modules with diff or touch, made even minor updates drag on for hours. I switched to Mint earlier this year out of frustration over that, and while the efficiency of the code has suffered, the time I save not having to wrestle with updates more than compensates. I would probably use Gentoo on a second system if I had one, but right now I need the one laptop I own in working order too much to rely on it.
Again, digressing.
The point is, kernel recompiles are something a certain class of Linux users talk about, often in glowing terms, but in reality, the majority of Linux installations never do any.
Also, the majority of Linux users are running a binary distro such as Debian (which includes Ubuntu and derivatives of that such as Mint and Elementary) or Fedora, which means that the process isn't significantly different from that of Windows or MacOS - and if the distro uses the kernel hot-swapping, even a kernel update won't necessarily require a reboot (though not all of them use those yet); I don't know offhand if Windows or MacOS can kernel-hot-swap, though if Windows can it's probably only since 8 (which means that they are neck-and-neck on that).
Oh, and they had the update system set up for general applications as well as the system well before Windows did (though I think MacOS had them both beat, I'm not sure) - prior to Windows 8, the built in update system only applied to Windows itself, Visual Studio, and Microsoft Office. To be fair, setting up a system for downloadable updates is a lot easier when you aren't messing about with a lot of conflicting corporate interests, but even so, Microsoft could easily have set up a store system for other software vendors much sooner than they did.
Sorry, that was a digression.
Even for users of source distros such as Gentoo and Arch, or the handful who run without a distro and build everything manually, they generally don't need to recompile every time there is an update, unless they like living on the bleeding, frequently crash edge. Generally speaking, both for desktop and servers, most users will go with a binary distro unless they have such high performance demands that they have to squeeze every cycle and byte out of the system that they can (actually, in those cases they would general not update frequently, as updates mean re-tuning and often add bloat).
I personally prefer source distribution as a concept (though slim binaries or some other sort of AOT/JIT split would be even better IMO), but when I was using Gentoo, the implementation of the updates was appallingly poor; I would get conflicts on an almost weekly basis that would have to manually resolved, and the fact that it recompiles everything each and every time, rather than checking the modules with diff or touch, made even minor updates drag on for hours. I switched to Mint earlier this year out of frustration over that, and while the efficiency of the code has suffered, the time I save not having to wrestle with updates more than compensates. I would probably use Gentoo on a second system if I had one, but right now I need the one laptop I own in working order too much to rely on it.
Again, digressing.
The point is, kernel recompiles are something a certain class of Linux users talk about, often in glowing terms, but in reality, the majority of Linux installations never do any.