Installing bug fixes is a big part of Defensive Computing. When I recently updated devices running five different operating systems, I took the opportunity to compare how they installed their latest patches.
The tests were run on July 27th. Hardware-wise, all the devices were old, but their software was reasonably up to date, lacking only the latest round of updates. All in all, it seemed like a fair fight.
I cold booted each device and waited for it to settle down before updating the operating system. Typically a computer does some housekeeping when it first boots and/or when it first goes online. So, I let each device sit for a while. Then, on Windows and OS X, I updated Firefox to insure that the internet connection was working well. On iOS, I waited for the app store to phone home. It initially said that 5 apps needed to be updated, but after a short delay, upped that number to 31. On Chrome OS, I just waited a few minutes.
In each case, the operating system update was the only thing the device was doing. Four devices used the same 2.4GHz Wi-Fi network with a very strong signal (they were in the same room as the router). The fifth device, a Windows 7 desktop, used Ethernet as that's all it had. Timings are reasonably accurate but I wasn't using a stopwatch.
I tried to limit the updates to just the operating system, something that comes quite naturally in iOS and Chrome OS. Windows 7 and 8.1 offer this as an option, but I am not aware of any way to limit OS X. In my test, it also updated Safari, iTunes and a couple other applications.
The five tested devices were:
1. A 64 bit Windows 7 desktop PC running an Intel Core i5-3470 (3.2GHz) with 8GB of RAM and a mechanical hard drive connected via SATA III. It had last been updated on June 17, 2016.
2. A 32 bit Windows 8.1 tablet running an Intel Atom CPU model Z3745 (1.3GHz) with 2GB of RAM and a 32GB SanDisk SDW32G connected with an interface that Speccy calls "SD." It was last updated on June 25, 2016.
3. A first generation iPad Mini model MD531LL/A running iOS version 9.3.2.
4. A MacBook Air laptop dating back to November 2010 (model A1370). It's running an Intel Core 2 Duo (1.4GHz) with 2GB of RAM and OS X Yosemite version 10.10.5.
5. An Acer C710 Chromebook with 2GB of RAM, manufactured in May 2013. It was on the stable channel, running the 64 bit edition of Chrome OS version 51.0.2704.106, which has a build date of July 6, 2016.
THE BAKE OFF
Windows 7 has been plagued, for months, with OS updates that take forever to install. Sadly, this remains true, it took Windows 7 longer than any other system to install its bug fixes.
Windows updates itself in two phases; first it figures out the missing bug fixes, then, in phase 2, it downloads and installs them. The first phase took 1 hour and 38 minutes to complete, by far, the slowest of the tested systems.
The first phase found seven missing patches but defaulted to only installing six of them. For whatever reason, it opted not to install KB971033. The six patches totaled 74 megabytes, and it took 5 minutes to download and install them. The shutdown and reboot took 2 minutes.
TOTAL TIME: 1 hour 45 minutes
Windows 8.1 updated itself faster than Windows 7, even though the tablet hardware was far less powerful than the desktop system. Still, it was the second slowest device.
The first update phase, determining the missing bug fixes took an hour and 6 minutes. The system needed 11 patches, totaling 199 megabytes. Phase 2, downloading and installing the patches, took 7 minutes.
At one point in the reboot process, the screen was totally blank. Maybe it always does that, I don't use Windows 8 much and never paid particularly close attention.The shutdown and reboot took 3 minutes.
TOTAL TIME: 1 hour 19 minutes
Updating iOS 9 was a drastically different experience. As soon as the process started, the system already knew that it had to install version 9.3.3, and, how big the download would be. The process however, was the most confusing of the five systems.
The early stages are confusing because it reports the status of the update in three different locations. The later stages are confusing because there is so little status information. It also tried to calculate a time estimate, but never did.
The initial statuses were "Update requested" and "Downloading". Then, while it was still downloading, it was also in "Preparing update" status. Then a small white window was displayed but it disappeared before I could read what it said. After the download completed, one location reported that it was "installing" while another location reported that it was "verifying the update."
Apple likes progress bars, but, for whatever reason, makes them very thin. So thin, it is hard to see the progress. It's not for lack of space, even with the screen mostly empty, the progress bar height is measured in molecules. And none of the progress bars were accompanied by a percentage, which just adds insult to the injury of barely being able to see them.
At one point the screen went totally black, then a white apple appeared, then all black again. Then a white apple with a progress bar. Then the progress bar disappeared, then another progress bar appeared, but there was no progress for a while, it appeared to be hung.
To paraphrase an old movie: Words? We don't need no stinking words.
Eventually there was movement on the latest progress bar, then it disappeared, leaving a black screen with white apple on it. Finally, the normal logon screen appeared for a few seconds, then the screen went black again.
From start to finish the process took 29 minutes. As I was finishing up this blog, Apple issued another iOS update, 9.3.4, which took me 23 minutes to install.
AVERAGE TIME: 26 minutes
OS X Yosemite
Like iOS, Yosemite knew very quickly that it needed to install security update 2016-004. As noted earlier, I was unable to install just this update so it also downloaded and installed Safari, iTunes, Remote Desktop Client and something called SU_TITLE - 768 megabytes of software. I was able to ignore the updates to Pages, Keynote, Numbers, GarageBand and iPhoto.
The download started quickly, but after about 600MB, it slowed down. The initial time estimate was 2 minutes but with 108MB to go, there were an estimated 6 minutes remaining. After downloading 734MB, it estimated that the remaining 34MB would take 2 minutes.
I don't think that the slowdown was on my end. When the download started, the MacBook had the Wi-Fi network all to its own. During the download, the Windows 8 tablet downloaded its 199MB payload very quickly. Even after the Windows 8 tablet was done, the MacBook download continued to crawl.
In the end, it took 18 minutes to download the 768 megabytes. After rebooting, the system estimated that it would take 7 minutes to install the new software. There was a progress bar and a time estimate that continued to adjust. Nice. Then, another reboot and yet another progress bar. The initial estimate was pretty good, installing the software and rebooting took 8 minutes.
After all this, the system was still running version 10.10.5, which I found puzzling. I'm not a Mac user, this may be normal, but I wondered if something had gone wrong. A little poking around (Apple icon -> About This Mac -> System Report.. button) turned up a System Information report that includes a log of software installations.
The log confirmed that Security Update 2016-004 had just been installed, so OS X loses brownie points for not fully indicating the operating system version. Both iOS and Chrome OS display an operating system version number that increases when the OS is updated, which, to me, seems like a better approach.
The log also showed that the MacBook was at a dis-advantage in this contest. The previously installed Security Update was 2016-002 so this was the only device missing two rounds of bug fixes. And, it showed that along with the Security Update, it also installed Safari 9.1.2, iTunes 12.4.2, Remote Desktop Client Update 220.127.116.11 and the mysterious SU_TITLE which has no version number (more points deducted).
TOTAL TIME: 26 minutes
The transparency of software updates is, to me, one of the best things about Chrome OS. End users are not asked or told anything about updating any software. It just works. That said, Chromebook users can opt into the bug fix game if they want.
To kick off a software update, run the browser and do: Help -> About Chrome OS and then click on the "Check for and apply updates" button.
In my test, the check for updates took seconds, then it transitioned to "Updating your device..." During this phase it displays a completion percentage, but offers neither a time estimate (hat tip to OS X) nor an indication of how how much data is being downloaded.
When the completion percentage hit 100% it sat there for a bit before telling me to "Restart your device to finish updating." At this point the black upward pointing arrow (the standard indication that a reboot is needed) also appeared in its usual spot on the bottom right of the screen.
Unlike the other OSs, when Chrome OS reboots to install new software, it is a standard, ordinary restart. There is no warning not to turn off the computer as in Windows. There is no non-standard user interface as in OS X and iOS. There is no progress bar. It tells the end user nothing. It just reboots.
As noted earlier, the system started out at version 51.0.2704.106 (Help -> About Chrome OS from the browser). After the update, it was running version 52.0.2743.85.
A nice thing about Chrome OS is that it also assigns a date to the operating system. The "About" page has a "more info..." link that when clicked shows the Build Date of the system. I started with a system that was built on July 6, 2016 and ended with one built on July 21, 2016. The date is a bit more hidden than I would like, but still, Chrome OS is the only system that provides dates.
TOTAL TIME: 4 minutes
The Windows devices had a hardware advantage, not that it mattered.
To recap the timings: Chrome OS took 4 minutes, OS X Yosemite took 26, iOS 9 needed 29 minutes the first time and 23 minutes the second, Windows 8.1 took an hour and 19 minutes, and Windows 7 needed an hour and 45 minutes.
I think it's fair to say that Chrome OS does the best job of self-updating. Not only is it fast, but it's also automated far beyond any other system. It is so automated, that it doesn't have to tell the end user anything. Chromebook users are not even aware that software is being updated - a small black arrow is the only user interface for software updates, and it can be ignored without penalty.
I like that the version number of the operating system increases as updates are installed and it's the only OS that assigns itself a date in human readable format. Finally, Chrome OS auto-updates everything, the operating system, extensions, plug-ins and, yes, Flash too. It is the gold standard for software updating.
The Adobe Flash Player, while not part of any operating system, is a thorn in the side of many. It may well be the most dangerous software in the world, considering both how buggy and how widespread it is.
Flash is not an issue on iOS, which offers no support, or Chrome OS, which auto-updates it, but on Windows and OS X, it's a mess.
Windows 8 and 10 will at least update Flash along with the operating system, but just for Microsoft's browsers. OS X however, is totally hands off. In my test, even the just-updated Safari browser was still using an old version of Flash.
On both Windows and OS X, the Defensive Computing approach is to limit Flash to the Chrome browser, which both auto-updates it and tries to disable its use in advertisements.