Ask HN: Why are Windows and macOS upgrades so terribly slow compared to Linux?
When I upgrade Windows, it frequently tells me the upgrade will take ~2 minutes, so I initiate it by rebooting, and after 20 minutes and multiple reboots, it finally gets me to the login, and first login spends ~5 minutes to login. Overall, terrible experience. Download is done in the background before doing the install, so this is just the installation process.
When I upgrade macOS, the progress in the beginning is fast until it reaches ~40%, then it stops and basically hangs with no process and might take up to an hour to do an upgrade. Same here as with Windows, download has been done in the background, so this is just the installation process, not including download.
Compared to when I upgrade my Linux boxes (most of them using Arch, some NixOS, some (still) on Ubuntu or Debian), the upgrade usually spends most time in the download stage, maybe maximum 10 minutes of installation and then reboot and it's done.
I recently didn't use my workstation that is using Arch for about a month. A huge amount of packages are installed on this as I do a lot of different work, so after a month I had about 40GB worth of updates to download and install. The download took some minutes, it spent some minutes installing all the packages, it spent the longest time recompiling some kernel modules and regenerating the boot images, then I rebooted and was back to work.
But it's never that fast on Windows or macOS. How come? Why is Linux distributions so much faster? Windows and macOS have huge teams working on them, there must be something I'm not understanding or missing, because I can't see how the experience can be so much worse for these OSes compared to Linux distributions.
26 comments
[ 3.8 ms ] story [ 53.8 ms ] threadI don't know, that sounds very sloppy if true and not something I'd expect from professional OSes developed by huge companies.
One of the things Windows will do is first lay out the work to revert all changes in that happens (across potentially thousands of files). It also need to flush them to disk (very slow, even on SSD) and then perform in a manner that would survive all sorts of failures.
That is pretty expensive.
https://www.reddit.com/r/archlinux/comments/pjcnh0/power_out...
https://unix.stackexchange.com/questions/453074/power-loss-w...
https://bbs.archlinux.org/viewtopic.php?id=106441
I remember long time ago (maybe back in the xp/vista days) when my Windows installation broke when we had a power outage during my upgrade. Haven't happened lately, but searching online I can see bunch of people having the same problem with latest Windows versions and macOS as well, requiring a reinstall to fix.
Macs afaik just replace the whole OS on every upgrade. Takes some time but tends to be kinda atomic without requiring complexity.
Contrast with Mac and Win, which are essentially black boxes that only the company's developers understand (if we're lucky).
It's been more than a decade since I used Win or Mac for anything important but back then the standard advice before any major upgrade was "make a backup" because these had a reasonable chance of putting your system into a state that required a reinstall.
They sure do, and I cannot remember the last time my Arch Linux would have broken because of an upgrade. While the packaging systems of Linux distributions are pretty damned good, I believe their stability is more due to great individual efforts of the package developers than any systematic design principle. Also the stability of critical upstream packages has improved greatly.
NixOS's stability derives more from systematic design, but perhaps ironically, NixOS is the only Linux distro I remember having soft bricked in the last 5 years by running an upgrade.
Maybe somehow windows / macOS updates are linked to something in BIOS (Idk either) ?
Idk.
It's possible I guess that both Windows and macOS upgrades something regarding the boot process, one of the Windows machine (which today went through the ~25 minute upgrade I described in the OP) is a Surface Pro 8, and all the macOS machines are obviously Apple hardware, so very likely there are firmware upgrades happening as well. It's a good guess.
My Windows upgrades have never taken this long and first login has never taken ~5 minutes. On the other hand I have had upgrades between Ubuntu versions take an incredibly long time.
But the Windows issue I mentioned happened literally today, and was the reason I wrote the post in the first place. And it was on a Surface Pro 8, which is a Microsoft device so thinking it should be the best device to run Windows on. But yeah, took awful long time and login took forever compared to how fast it normally is. Running Windows 11, as it came with when I bought it.
Not really doing anything extreme with it either, the most "complex" thing I'm doing on it is running WSL2 I guess, but also a official Microsoft project and shouldn't impact the upgrade process as far as I know. The computer is just a couple of months old as well.
Can you check if there are any startup scripts within windows or there is some sort of event registry, right ? I've not experimented that much but - there would be logs.
I have no custom startup scripts what so ever. Everything works just fine during normal operations, just that Windows updates suck and wasting my time, just like macOS.
I used to run a Windows VM for the occasional proprietary windows program (generally some hobby-related thing) but every time I fired up that VM, it would force an update and basically be completely unusable for 45 minutes or more, just so that I could do 5 minutes of work on it. My time is more valuable than that, so I just simply don't use it anymore and have accepted that Windows is unavailable to me.
But with Windows and macOS, you're dead in the water while the process is being done, so even if you wanted to, you couldn't continue working.
Nothing worse than having something that will take ~10 minutes to complete but getting stopped by starting an upgrade that takes more than 30 minutes.
To be fair, it was kind of my fault. I had made a modification that wasn't quite right, but the new version of something couldn't handle it anymore.
Additionally updates for Windows and Mac need to be EXTREMELY robust, to avoid breaking lots of peoples computers. And its hard to write robust updates for non modular systems.
As a result, updates to Windows or Mac are often overkill - instead of updating some library, a bigger chunk overall gets updated to minimize the chance of affecting the OS.