PC Makers Try To Pinch Seconds From Their Boot Times
Some computers are never turned off, or at least rarely see any state less active than "standby," but others (for power savings or other reasons) need rebooting — daily, or even more often. The New York Times is running a short article which says that it's not just a few makers like Asus who are trying to take away some of the pain of waiting for computers, especially laptops, to boot up. While it's always been a minor annoyance to wait while a computer slowly grinds itself to readiness, "the agitation seems more intense than in the pre-Internet days," and manufacturers are actively trying to cut that wait down to a more bearable length. How bearable? A "very good system is one that boots in under 15 seconds," according to a Microsoft blog cited, and an HP source names an 18-month goal of 20-30 seconds.
Why this is still an issue in this day and age.
For example, my Mac will go from startup to login in half the time of either Vista -or- Ubuntu (not counting what happens -after- login, but as far as applications go, they're fairly straightforward), but my TV will start in a second or two. So did my old Commodore 64.
How is it that the more power we get, the -longer- this takes? And why is it that the solution always involves hardware makers? Maybe we need to look at how our operating systems are constructed instead of blaming the hardware itself.
If firefighters fight fire, and crimefighters fight crime, what do freedom fighters fight? - George Carlin
There needs to be an industry wide effort to prevent startup bloatware. Why does windows let AIM install itself as a startup program without having the damn UAC complain that this is a protected area? Why does every HP come with 30 preinstalled programs in the startup? Startup items need to be protected in some way: Seriously, I love it if I installed a program and windows said, "Are you sure you want this program to start automatically with windows?" We should just kill the hardware comapnies for the bloatware they install for kickbacks.
Yup, it has always irritated me that the faster my system gets the more I need to wait for it..
There are IMHO 3 levels to this:
1) BIOS boot. Why the hell do I need to wait for this? I don't need the advertising, thanks, and a state check is BS if it worked before - flag and repeat. The maximum allowed delay should be to show a 2 sec message "Press F1 to enter BIOS or re-scan" - and even that one should be able to switch off. I recall reading something about an Open Source BIOS having to be slowed down because it was ready before the disks had spun up - yes please!
2) OS boot. The actual core OS is again something that, once stable, changes very little. Or so goes the theory, with the incredible amount of patching going on in Windows there is indeed a need for re-scan. But that again is something you do once, then skip the proooooooooooooooooobing for something that *may* be there but doesn't respond in teh half century timeout that it has been given. I can recall something called TurboDOS for the Apple ][ that was a good 3x faster, mainly because someone had brought the timeouts back to something sane.. What I find particularly offensive is the Microsoft marketing department forcing a visible desktop that makes it appear the machine is ready, where any enterprise build will take more than it takes to get a coffee before it is finally really is, even after defragging the disk. That's at least something I find less of an issue with Linux. However, these days there is an awful lot of crap that has to be loaded for no apparent reason - maybe time to lift the covers and go back to basics?
On the Linux front an observation aside: once upon a time, Linux booted in seconds even when the then Worries for Workgroups was already starting to get obese. This speed advantage no longer exists other than that a ready desktop really IS ready :-(
3) App level boot. Once the OS is live, all these other gadgets become alive. There is a whole raft of things that sit and watch for events these days, and most of it does so surreptitiously. Picasa shows a logo and tells you it's watching for events, but the iTunes crap hides, ditto for the Apple update. Once upon a time you could look in Windows "startup" and look at what actually loaded, but that was obviously too visible and useful and could -oh shudder- allow the customer to kill off the things they didn't want. These days, only Logitech and OpenOffice do it as intended, the rest all sits under the radar - motives?
ANY program setting up some form of monitoring should be visible, and offer the advanced user a way to kill it off. I want iTunes only to play music, and I will start it up myself hen I need it to sync - that is a choice I should be able to make. Sure, make it idiot proof but for God's sake leave an option for the non-idiots to control it (and bloody stop trying to shove Safai down my throat with every down, sorry, 'up'grade). And I don't recall ever giving permission for the Apple Update program so where did that come from? I think that is in principle a breach of computing laws to install software without authorisation..
There are so many apps that start up a background process for updates that it's a miracle there's bandwidth left for getting any work done, and starting an app starts off some more. Apple iTunes, Firefox -and each extension thereof-, Thunderbird -ditto-) - the moment you start them the hunt for updates begins. "Stable" has been replaced by "perpertual beta" - and we know who started that (yes Redmond, it's you). I can recall where especially an OS patch was A Big Deal. The fact that someone does this monthly (and now doesn't) should not blind you to the fact that it once was an exceptional event rather than rule.
And then there is the way network events are treated: synchronous. Start Outlook and watch the system die while it waits for some sign of life from the server (and then continues this throughout the day). Watch a DNS lookup freeze a system because the netwo
Insert
What I have noticed is that what is one of the major culprits in long boot times is antivirus software starting up and doing its integrity checks. Reduce this, and you will reduce times perhaps by five minutes on some machines. However, with Windows, I doubt AV makers could do it without reducing security though.
What really gets me is not just the boot time but the shutdown time. Especially because I often reboot (shutdown time + boot time).
When I tell my PC to shut down, all it really needs to do is make sure that no files are currently being written to disk, force a dismount of all drives, and then cut the power. Everything else is bad programming, as far as I can see. Why does the network have to shut down? Why do a whole load of separate processes have to be given signals? Why does KDE need time to save settings (it should have already saved them in real time)?
If the computer is not doing anything, a clean shutdown should take no more than a second, and yet it can take much longer.
"If it took long enough for you to notice then something must have been wrong"
Actually that is one of the reasons why things are still slow in general - because though CPUs and hardware get faster and faster, we're still living in a human world. So the "human notice" times remain important.
Lots of programmers have their programs wait for one second if they have to wait a minimum time for hardware or for other reasons, after all most seem to think "it's only one second".
A few 1 seconds here and it all adds up.
Silly? Maybe in many cases, BUT often you really do have to wait in seconds because it says "press ctrl-A for SCSI controller config" and so if the computer does not wait _seconds_ for the human and only waits _milliseconds_, the human is also going to be pissed off.
For a similar reason a windows PC can't boot faster than the X seconds for you to press F8 to enter "Safe Mode". Well it can, but it'll have to be "hold F8 down while booting", and that means some changes in the keyboard hardware and config stuff, some user education etc etc.
Also often the threshold for determining that something has gone wrong is more _human_ related. Say a hard drive has gone slightly flaky and takes a bit longer to spin up for whatever reason.
How long will a human wait for a harddrive to spin up? Pretty long in many cases. Even if it takes 30 seconds, they might still wait.
The BIOS could just assume it's dead, after all it's not behaving like a _normal_ hard drive. But the specs for _failure_ are often human related - they are determined by how long it is expected that a human will wait.
It's just like network connectivity timeouts are in the order of tens of seconds. Instead of say minutes. A tree might be willing to wait minutes or even days, but most humans don't want to wait minutes.
They're not in the order of milliseconds because the speed of light is too slow (light takes more than a few milliseconds to cross the world) and people are willing to wait seconds.
I don't mind boot time so much - what really gets on my nerves is when a machine comes on, pretends it's ready but is then maybe five minutes doing other stuff before you can actually use it while you stare at the screen and frustratedly try to click on things. That's especially bad in the roaming profile scenario you mentioned.
That's perhaps the worst part, as most people that have no idea of how a computer works will start clicking on progran after program, thus starting yet another parallel process that adds up to the rest. And parallel processes take more than the same ones in series because of memory/disk seek times and the need to share a common pipeline.
I always try to encourage people not to "start" after the screen appears, but after "the red light goes from always on to scarcely blinking". Of course most people ignore the advice and press things frantically till they end up CTRL-ALT-DELing and thinking it did the trick.