Why Do Computers Take So Long to Boot Up?
An anonymous reader writes "Computers take too long to boot up, and it doesn't make sense to me. Mine takes around 30 seconds; it is double or triple that for some of my friends' computers that I have used. Why can't a computer turn on and off in an instant just like a TV? 99% of boots, my computer is doing the exact same thing. Then I get to Windows XP with maybe 50 to 75 megs of stuff in memory. My computer should be smart enough to just load that junk into memory and go with it. You could put this data right at the very start of the hard drive. Whenever you do something with the computer that actually changes what happens during boot, it could go through the real booting process and save the results. Doing this would also give you instant restarts. You just hit your restart button, the computer reloads the memory image, and you can be working again. Or am I wrong? Why haven't companies made it a priority to have 'instant on' desktops and laptops?"
hibernation?
~~~ Paf. Le chien.
It is because until now, you haven't submitted your question to Slashdot.
"Why can't a computer turn on and off in an instant just like a TV?"
My new HDTV takes about a minute to boot. Something about an ATI bios
I triple boot NetBSD, FreeBSD and x86 Solaris on my old desktop with an Athlon XP processor, and 512 MB of RAM. I don't recall off-hand the exact processor speed.
Regardless, NetBSD is the fasted of the three. It takes a little over 6 seconds from power-on to the login screen. FreeBSD takes 11 seconds. Solaris is a bit longer, clocking in a 14 seconds. I know these times because I was curious of this question as well, and so I did the timings. All three systems are basically the default installs, plus whatever initialization file changes there have been from installing various pieces of software.
Solaris does start into X, so that may be why it takes longer. Still, adding the 2 or so seconds it starts to get X running, NetBSD and FreeBSD are still less than Solaris.
There are two reasons why your suggestion won't work.
First, let's say that you upgrade some hardware. There will be no way for the OS to know that there's new hardware unless it goes through the hardware detection and configuration stages of bootup, which is what takes most of the time. Worse, if it doesn't do this, the system will probably just crash, as the memory image loaded will have the wrong set of drivers installed and they'll be pointing at the wrong set of hardware addresses.
Second, and this is more of a recent issue, there is a lot of work that's going into randomizing memory addresses to increase security. In the event of a security hole, randomized memory addresses make it far more difficult to take control of the machine as a hacker, virus, or worm can't use a hard-coded memory address during the attack. With a pre-built boot-up image, the memory addresses will not be randomized, which defeats a lot of the gain of this security benefit.
That said, you could just use hibernation on your computer. That is essentially the same thing as what you're asking for. A desktop is just as capable of sleeping or hibernating as a laptop is. The only thing is, if you want to make any hardware changes, you must remember to turn on the machine and do a complete shutdown first.
Also, there are companies who are focusing on bootup speed. In fact, every major Linux distro has been focusing on it for the last year or two. It's unfortunately just not that easy to speed things up without sacrificing stability or functionality.
Suspend To Ram.
If you need to reboot, you're rebooting for a reason - likely because something in that "50 to 75 MB" has changed.
Of course, if your box doesn't support suspending to ram, then hibernation is an ok alternative. But sometimes hibernate can be just as slow, if not slower than rebooting.
end of line.
It's just Crap.
I've spent a lot of time using Windows in virtual machines. For VM platforms that provide on-demand block allocation for virtual disks you can see a typical Windows boot do wild things like write to 250MB worth of blocks that were previously unused (i.e. the virtual disk grows by 250MB). NB: I'm talking about an ordinary boot, not one following installation of anything. It gets harder to see as virtual disk occupancy increases but it's an eye opener.
don't you think that if computers booted in 1-2 seconds, people would be more likely to turn them off when not in use? odds are, if your computer takes more than a minute or so to boot you won't turn it off say over lunch or during breaks. think of all the energy we could save? for the energy conscious out there, you could start by turning monitors off when not in use.
Indeed.
In the beginning, say from Edison's development of the electric lighting system, through the invention of the fractional-horsepower motor which enabled the development of home appliances such as vacuum cleaners and washing machines, most things started up in a fraction of a second.
Then came vacuum-tube-based electronics, which took a minute or two to warm up.
Then came the "solid state" revolution, and, once again, things started up instantly. WIth the exception of television sets, which had a vacuum-tube-based "picture tubes" in them. However, manufacturers soon developed circuits that kept a small amount of current flowing to keep the filament partially warm while the set was "off," producing "instant-on" televisions.
Early hobbyist computers were instant-on, too. Before diskette drives were common, the machine had everything it needed to boot stored in ROM and was up displaying some kind of welcome prompt within a fraction of a second. Even when the serpent entered Eden in the form of "operating systems," startup was quick. When you turned on an 48K Apple ][+ with a diskette drive and spiffy Apple DOS 3.3, there was a brief "whish" as the disk spun and loaded a few K of code into the processor, and there you were.
It seems to me to be lazy design that says that booting consists of more than loading code into RAM and establishing state for the internal hardware. I have no idea why OSes must churn away for big fractions of a minute _running_ code. Why can't it just load a snapshot of the desired final state of RAM?
What really gripes me is that lately Windows and Mac OS X have taken to presenting an empty _illusion_ of a faster startup. What seems to be happening is that all the minute-long processes still churn away, but the processes that present the UI run in parallel. The result is that the visible desktop gets into a displayable and interactive state quickly. But while the UI seems to be ready, nothign else is... particularly anything to do with the local network. If you actually try to do anything on that desktop, you still encounter minute-long delays.
"How to Do Nothing," kids activities, back in print!
(I hope I have this story right...this is from memory)
The story goes that the engineer working on the boot sequence for the original Mac was working late one night when Steve Jobs wanders past and asks how long the thing takes - the engineer is pretty happy that he's gotten it down to around 30 seconds (or however long it was) and that's probably good enough. Jobs then comments that they'll probably sell at least a million of these things - and each one will probably be booted a couple of times a day - and the machines will last maybe five years - so if he can save just one second more from the bootup time - that's equivelent to 113 years from the lives of Mac owners. So if you can save just one more second - that's like saving someone's life.
Talk about pressure!
But it's a serious point. The amount of human lifetimes that are wasted waiting for PC's to reboot is pretty horrifying - and there's a lot more than a million of them. Someone should take this seriously.
www.sjbaker.org
Hate to imagine the amount of human lifetimes lost on slashdot...
James Tiberius Kirk: "Spock, the women on your planet are logical. No other planet in the galaxy can make that claim."
What gripes me more than slow startup is the idea that a computer can't be shut off quickly.
The last time we had a power failure at work, I tried to shut down my Windows machine, which was on a UPS. For some reason, the machine decided at that very exact instant... apparently _after_ I selected shutdown... that it would be a good idea to download and install a system update first! There did not appear to be any way to interrupt the process. Knowing that the batteries on the UPS weren't what they usta be, I quickly turned off the CRT to reduce the load, crossed my fingers, and hoped for the best.
It took the machine the better part of ten minutes to shut down. Fortunately the batteries held out. Heaven only knows what would have happened if power had been interrupted while it was in the middle of installing a system update.
Years ago the science writers used to tell us that we needn't be afraid of computers taking over the world because, after all, we could always shut off the power. Yeah, right.
"How to Do Nothing," kids activities, back in print!
If Windows didn't go through the complete boot process each time how would it come up with random reasons to crash?
Professional Politicians are not the solution, they ARE the problem.
That's one of the things that always amazed me about OS X. You can fault it for various reasons, but by god, you shut the lid on your iBook, and five seconds later, it's in zzz mode (with a battery life of about two weeks - I tested that once). Open the lid up, go "one, one thousand..." and it's awake and ready to use. I've tried this on some of the newer Intel-based MBPs and regular MBs, and it works just as well. So Apple has it dialed. What gives with the rest of the computing world? My stupid Latitude has such a buttfargled ACPI that windows goes "Derr, BSOD" when I try to use hibernate, and of all the Linux distros I tried on it, only Kubuntu came close to doing it right. The problems it encountered at wake-up were sufficient that I finally gave up on hibernate (as well as Kubuntu - on to a better KDE distro), and simply have it blank the screen when I flip the lid shut. It's good for about four hours that way, which is usually enough.
political_news.c: warning: comparison is always true due to limited range of data type
I really don't know if it's that great of an idea to turn of a computer over lunch. One of the hardest things on a computer (hard drive, motherboard, power supply, you name it) is starting up. That's when most hardware failures occur. Shutting the computer down for an hour at a time and rebooting is going to shorten lifetimes of your hardware. I think when that hard drive fries it might well take more energy to construct a new hard drive and restore backups, etc, than you probably would have saved during those 30-60 minutes x however many days.
same with my ibook g4, i just put the lid down and walk away. it always wakes up. on the powerbook hd, and macbooks (incl pro), sleep actually stores a hibernate image on the disk so that if you either 1) run out of battery or 2) manually pull the battery out (lets say on a long intl flight) and put in a new one. If you do a wake when you haven't killed of the power source (99% of the time really), it uses the RAM to continue operation. If you've disconnected power for whatever reason, it will wake up, present a little loading bar (incl a screenshot of your desktop if you don't require a password to unlock your computer from sleep/screensaver). Heres an Apple doc on it: http://docs.info.apple.com/article.html?artnum=302 477
I always wondered where this setting was...
honestly, this is like the dumbest possible way to ask why we can't have faster boot times.
Ok, maybe not. The dumbest possible way is probably something like:
"why can't the compujigger turn on faster, like the whatchamavision?"
but still, it's pretty damn close.
there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
I mean, all those gears and counterweights can't be that slow, now can they? Wait...
Well, if everybody just stared at their screens and drooled while they booted, I guess you could say something was being wasted. Except for all the quality drooling time, of course.
The CRT filament-maintenance bias trick was done for awhile in the 60s and 70s, but it was eventually recognized for the waste of energy that it is. What happens nowadays is simply that the rest of the signals are not applied to the CRT until the cathode has warmed up. This improves the tube's service life, and avoids the "expanding dot" effect that you'd see on older TVs that brought all the tube voltages up at once.
Linux on an embedded system configured for fast booting(without plug and play peripherals etc) can boot in 2 seconds or so.
Engineering is the art of compromise.
According to Anandtech, booting with the i-RAM into Windows XP takes 9.12 seconds.
CRT TV's turn fast because the tube has a bias circuit to keep it warm. When turned "OFF" most TV's burn about 5W to keep the tube warm for fast start.
No, they do not "keep the tube warm". Yes a TV might draw a few watts when in "off" mode due to the power supply for the digital logic section always being on. But just about every CRT based TV or monitor I have seen, except for maybe some real high end broadcast equipment, takes a few seconds for the tube to come up.
You definitely weren't around in the 60's and mid 70's when we watched the tube warm up and the displayed image grow from a small dot to the full size of the screen. Sometimes it would take 20 or more seconds before the picture stabilized. When you turned the TV off you got to watch the "boot" process in reverse as the display shrunk to a dot. It was a big deal when we got "instant-on" TV's.
Well yes, TVs used to take longer to fully power up, and didn't have dampening circuits to prevent CRT display after being turned off. They where basic fully analog devices, there was no logic that prevented the display of an image when the CRT was not yet in an operational state. In the 60's they would have been vacuum tube based (as in the whole TV, obviously a CRT is a vacuum tube) and taken a long time to fully warm up, and needed adjustment and retubing on a regular basis. In the 70's they would have been transistor based, and would have come up much faster, how ever they would still be fully analog and subject to the same power up and power down effects.
Modern TV's have digital control sections that can compensate on the fly for variations in the analog sections of a CRT display, and higher performance switching power supplies and fly-back circuits that come up to operating voltage much faster. But you still have at least a short wait for the CRT to come up, they are not kept on warm idle of any kind. At least not in any displays I have worked on.
I know this is probably getting off topic, but your post was marked +5 informative yet has miss information in it. Having worked on many CRT displays I just wanted to point out that the CRT is definitly not kept on any kind of warm stand-by, none that I have ever seen any way. What you are describing sounds similar to the stand-by mode in most guitar tube amps, where the heater filaments in the tubes are kept on to keep the tubes warm but the rest of the amp is powered down. I am not aware of this being done in modern CRT displays. Seems to me that if you did this it would dramaticaly shorten the CRT's life span, if the heater filaments were on 24x7x365. Someone correct me if I am wrong...
I find XP refuses to hibernate with more than about 600MB of active memory; it makes an attempt, then returns you to the desktop with a popup bubble saying "Insufficient resources exist to complete the API". This necessitates me closing all my apps before each hibernation, and after a week or two even that won't work.
:)
Anyway, I remember using something closer to what the story is talking about, on the Amiga of all places; FastBoot had you boot normally, then save a snapshot of the system at the end of the startup-sequence. Future boots would use this snapshot, which you generally didn't want to update at each shutdown -- you got 2-3s boot times, but each boot was clean. It worked surprisingly well for a scary hack
I just spent 30 seconds reading your post.
YOU BASTARD!
Also, the hardware on a TV doesn't change. It just doesn't. So you don't really need any of the BIOS' going "Wtf? Who am I? Do I have arms and legs? no. Do I have a cd drive? yes. What time is it? Will there be cake?" If you go entirely to an instant on through complete saving of the boot configuration, you lose all of the plug and play goodness that everyone oohs and aahs about (that is, suddenly things won't Just Work (TM) anymore). If you swap out a hard drive, or add a new DVD+RW drive, your BIOS doesn't freak out because it asks at every bootup what its got. The OS doesn't freak out because it has hardware detection routines too. Anything that can change from one bootup to the next which makes any difference at all to the things that start running during boot must be detected. Try putting your computer into hibernate (suspend to disk), and then changing the amount of ram. Will it come back up out of hibernate nicely? I doubt it.
SIGSEGV caught, terminating
wait... not that kind of sig.
The biggest problem of booting up like this is that the contents of memory and cpu registers isn't enough. The hardware has to be properly initialized as well. Since the internal state of the drivers indicates that has already been done, a consistent mechanism to force re-initialization of all hardware has to be in place after the system reloads the image. That might take as long as a normal boot does.
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
Because people are stupid. If there were a specially-accessible (say, via the F8 key at startup on Windows) "re-detect hardware" boot option, and the default just went with whatever the OS already knew about, then people would first bitch about how "I put in a new soundcard, and Windows can't even see it!" And then when they learned how to detect it, they'd bitch about "Why can't Windows just do that automatically?!"
Seriously, you want an OS that does exactly what you want at boot time? Use Unix. You want something that works reasonably without you having to mess with it? Use Windows. Don't blame Microsoft for your own poor choices.
It's always a long day... 86400 doesn't fit into a short.
Only if everyone in the world sits around and waits for it to happen every single time, and does absolutely nothing else with that down time. It doesn't count if you spend that time even THINKING about another issue/problem. You have to sit there motionless, stare at the screen, and do absolutely nothing but age.
Personally, I can find plenty of things to do with my time when I know I can walk away.
The more significant issue, IMHO, is the responsiveness of programs. Forget boot-up times, when you don't even have to be there. How about the delay between clicking the Firefox icon, and waiting for it to start-up so you can do useful work? How about the delay between clicking on a link, and having that link load and render? How about the ammount of time the system is unresponsive as it does something (like render a webpage) in the background?
That, IMHO, is many times more important, and something I certainly have to deal with far more often than reboots. Personally, I have a 2GHz system, with 1GB of RAM, and I still strictly stick with GTK-1 programs, because it's so much faster and more responsive than GTK-2 (or QT) equivalents (as well as not uselessly wasting screen realestate). Ever program I use has a fully functional GTK-1 equivalent, so I'm not missing out on anything by sticking with it, it's just an occasional hassle to change the default configure option, or using a different program because the new version of whatever dropped GTK-1 support (like switching from GAIM to Ayttm). It's a rare issue, and well worth the improved performance anyhow.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
The problem is old-school linear thinking we've inherited.
There is no technical reason that a computer could not wake up, verify the keyboard, memory, hd, mouse and display are the same (in a few microseconds, probably) and be up and responding very well to the user, while (new concept, brace yourselves) the computer carefully brings up other hardware subsystems and makes them available as they become functional. You could be in a word processor, graphics editor, all manner of things that don't require more hardware until you do something like print or attempt to access the network; if those subsystems are not ready when you try to use them, the design would allow for [establishing hardware, wait or cancel] and there you have it.
There is no problem whatsoever with plug and play concepts coexisting with fast usability other than current design shortcomings end users have been forced to live with. The computer is running as soon as the HD is spinning, memory sized, and the video card is on and the KB and mouse work. Just because current operating systems don't let you begin working at that time isn't a reflection on plug and play as a concept, it's a reflection of linear thinking that descends from old single tasking systems like early DOS.
The idea that a 2...3 GHz 32 or 64 bit CPU cannot bring itself to decent usability in under a second is one that is silly right on the face of it except in that common systems are using old school thinking and layering more and more crap on top of that thinking. There is not a thing in the world that says drivers can't be loaded on demand, or after usability from boot, or separately. Nothing.
I've fallen off your lawn, and I can't get up.
>The other issue I have is that I normally use a VPN to connect to work, and the VPN tunnel doesn't like getting shut down and restarted, especially with a different IP address, so I still have to re-authenticate by typing in my security token code to the VPN client.
Isn't that what's supposed to happen? You've left your computer for a while, especially a portable one, it better disconnect any secure resources it has. It's comfort over security as usual, but I think this is by design.