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.
I think a large portion of the delay is initializing and setting states for all the hardware. Reducing the kernel and libraries to an image might speed things up, but not by much. It'd be about as fast as starting up from hibernation mode.
If you want a quick start, just use sleep mode. Takes very little power and you're up in seconds.
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.
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
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...
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...
- A 'normal' cold boot of my PC takes about a minute
- 'Hibernate' takes about 20 seconds
- S3 Standby takes about 6 seconds.
One catch is that by default most systems use 'S1' mode for standby, which keeps the machine semi-alive including the CPU fan, power supply fan, etc. You can often go into the BIOS, change the default standy mode to 'S3' -- this will shut down the entire machine (including fans, etc.) but keep proviging a minimal power charge to the RAM in your machine so it won't lose its contents.
Since all the content remains in RAM that way, your machine will behave the same as if you did a hibernate, except it doesn't have to spend the additional ~25 seconds writing everything to disk first when you shut down, and also doesn't have to spend that time to read it back into RAM on bootup... Resulting in the ~6 second bootup time.
(While it takes some power for the RAM to keep its information, it is negligible compared to a complete shut down, since any modern PC still provides some power to the motherboard after it is 'powered off'. Case in point: See the LED on the main board indicating the power status on a machine that's supposedly turned off)
It's been a long time since I truly shut down my PC.
Note: the one catch is that if you do lose power to your machine while it is in standby mode, any contents that were in memory at the time will be forgotten again, and it will do a 'full' bootup next time you start. Hibernate doesn't have that problem, but takes significantly longer to shut down and boot up.
It's called "auto end task", and it's just a couple settings in the Windows registry. I've been using it successfully for a VERY long time now, and it works exactly as you'd want:
http://www.winguides.com/registry/display.php/199
If the program doesn't end (30 seconds) after it gets the kill signal, it gets killed without requiring you to be there to hit the button.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
http://www.newegg.com/Product/Product.asp?Item=N82 E16822116156
Or maybe you are.
--S (not that you'll find SAS in laptops, but hey, this is slashdot.)
-- sigs cause cancer.
Microsoft has a free utility called bootvis that visually shows you were your computer bootup is spending it's time. You can download this utility at: http://www.softpedia.com/get/Tweak/System-Tweak/Bo otVis.shtml
This utility also has some whitepapers with advice on what you can do to speed up your boot times.