Live data from Hacker News

Why can't computers boot instantly? (2013)

superuser.com

111–120 of 167 posts

Re: Why can't computers boot instantly? (2013)

#111

Windows is a bloated mess, so it's obvious there. As for anything POSIX, it's because UNIX is shitware; it took a long time to boot decades ago and it takes a long time to boot now, because more garbage has been piled on top. It's possible for a good operating system to boot in less than a second, however. People have simply been conditioned to accept this unacceptable state of affairs, no different than a TV that ta…

I installed Manjaro about a week ago and it cold boots in ~5 seconds (not counting the grub menu to select between windows and manjaro)

Re: Why can't computers boot instantly? (2013)

#112

I remember when Ubuntu was first becoming popular. At the time, Windows boot times were long--I don't have timings, but my memory seems to say something like 5 minutes. And Intel processors were in the middle of their highest-energy-use period, so they ran hot , meaning you couldn't just leave your laptop on all the time. So reboot time was a significant part of my experience as a Windows user. When I first booted Ub…

> I suspect this was motivated at least in part by competition from Ubuntu.

Ubuntu has such tiny market share that I strongly doubt this.

Re: Why can't computers boot instantly? (2013)

#113
post #99
post #91

Earlier quoted context omitted.

// What happens is that S1 is different for different computer configurations, and processing needs to happen. The computer and OS config doesn't change often. And it's doesn't seem slow to test that. So caching at boot should work. And caching is a low effort optimization. So it should have been implemented early. But we don't have caching at boot, why?

The two hard things in computer science are naming things, and cache invalidation. Remember; the computer could quite literally have been completely reconfigured out from under the BIOS. Testing that everything is the same from the computer's point of view is anything but straightforward. Also, most recognizable boot time isn't spent waiting on BIOS and POST; it's spent waiting for either the boot loader, disk encryp…

Usually the configuration stays the same, though - why not a way for the user to indicate when it has? Hold down an awkward combination of three far-flung keys while booting, the BIOS wakes up and checks every device plugged into it, otherwise it just pulls it in from a cache.

(And how much does the average computer's config change? How many users never change a single part of the hardware configuration of their computer for its entire lifetime? A hobbyist who built their own might swap out CPU/GPU/drive/ram/etc, but how many people upgrade their laptops in any way?)

Get all that backup stuff spun up. Save the state of the entire computer the same way you're saving a hibernation snapshot. Next boot, just pull that snapshot up. Something makes that snapshot crash? Reset and run the slow boot, either because the system caught this, or because the user held down the "invalidate bootup snapshot" chord.

Although realistically I never reboot my computer any more unless I'm doing an OS upgrade anyway. It's all just "sleep" and "wake up" nowadays for me, so I don't care if bootup adds a minute or two to the end of the half an hour or so my computer spent downloading the update and applying it. Maybe a cold boot just isn't worth optimizing any more.

Re: Why can't computers boot instantly? (2013)

#114

I remember when Ubuntu was first becoming popular. At the time, Windows boot times were long--I don't have timings, but my memory seems to say something like 5 minutes. And Intel processors were in the middle of their highest-energy-use period, so they ran hot , meaning you couldn't just leave your laptop on all the time. So reboot time was a significant part of my experience as a Windows user. When I first booted Ub…

> I suspect this was motivated at least in part by competition from Ubuntu. Ubuntu has such tiny market share that I strongly doubt this.

Ubuntu and Linux may have a small market share in the general population, but they enjoy a larger share among software developers. And we all know ("developers, developers, developers!") MS has chased that demographic.

Re: Why can't computers boot instantly? (2013)

#115
post #84

Earlier quoted context omitted.

As an example, consider the PCIe bus controller. Say it had some non-volatile memory so that when it powers on, it just reads the bus configuration from the NVM instead of enumerating and initializing the devices on the bus. Lots of time saved. Well that wouldn't really work without the PCIe devices also storing the configuration in NVM. If I plug a x16 device into a x4-only slot (as is typical for the third PCIe x16…

All that PCIe enumeration takes much less than a second, in my experience. The current boot on the machine I'm using to type this took only 2.3 seconds for the kernel part (source: systemd-analyze).

Enumeration, yes. But then you need to load and initialize all of the drivers for the stuff you just enumerated.

Re: Why can't computers boot instantly? (2013)

#117

When I was in high school their Amiga would cold boot into a GUI within 3 seconds. It was the same for the Acorn Archimedes in the UK. These computers had the entire GUI OS burnt into the ROM. After that I remember the shock or getting a 386 and waiting minutes for Windows 95 to load. It was like the future had died and was buried by a conspiracy of silence in the industry.

> It was like the future had died and was buried by a conspiracy of silence in the industry.

That is exactly how I feel about many other regressions in tech!

Including the promises of the internet and online gaming, or when the industry wanted to sell 3D cards but 3D games were uglier than 2D/hand-drawn games for several years..

Re: Why can't computers boot instantly? (2013)

#118
post #74
post #40

Earlier quoted context omitted.

The fact that reboots happen mostly when software (kernels, system) is upgraded is part of it. It's simplest and most reliable to initialize the system from clean state (I've often had an idea it would be best to reinstall Windows+software for each reboot).

Yes, but do you have an idea why that is, why is it so much more reliable to initalize every time than to generate an initialized configuration and reuse that? Developer errors? Not enough testing?

Part of it is hardware support- your machine's state isn't just in main ram and CPU registers, it's also in the state of every embedded microcontroller and onboard memory of every device on the machine.

It's to limit the complexity of suspend/resume that a lot of OSes will do things like reinitialize all drivers (e.g. unload/load kernel modules) to try to get the whole system into a known state, but this takes time.

Relatedly, hardware can be added (or enabled) between boots, so whatever conditional hardware initialization was done when booting may result in a state that's not quite accurate later. Furthermore, some of the state (e.g. anything involving system time) will always need to be modified after restore, and that's a state transiston that's less well tested (moving your clock forward hours or days may make a lot of software flake out).

Re: Why can't computers boot instantly? (2013)

#119
post #85

This is a good question, and the "answer" avoid it by essentially saying "it can't be zero." Why does boot time take ~10 seconds? CPUs run in GHz, meaning 10^9 operations per second. That means that booting takes around 10^10 operations. Why that order of magnitude and not any other? Obvious answer is "that's where the optimization efforts stopped", but could it be 10^9 or 10^8? Obviously booting time isn't just (or…

10⁹ ops/s is an incredible underestimate; CPUs tend to have an IPC around 4, and at least two cores, even on mobile. Which means at 3GHz, you should have closer to 10¹¹ ops/s. The real question is not whether a computer can boot in a second, it's whether it can boot in a frame.

Actual observed IPC tends to be 1 or less unless you are running well tuned computational workloads. And mostly software doesn't utilize multiple cores well.

Re: Why can't computers boot instantly? (2013)

#120
post #68
post #62

Earlier quoted context omitted.

>Why doesn't it start in an initialized state That's sort of how Windows quick startup works. It saves the kernel state after startup, and on next startup, it restores it (kind of like hibernating the system). Iirc emacs does something similar with its lisp runtime as well.

Yes, I was thinking of Emacs, too. I'm basically curious why the BIOS etc. couldn't run once, store the result of initialization and then resuse that on every boot until the configuration changes.

Because how would it know that some little detail about some configuration has changed (maybe you moved a PCIe card from one slot to the other, a firmware of something was updated, or whatever)? It would have to scan everything, every startup...and that takes time...

And because the BIOS isn't your only state-holder, anything with a controller on it inside your PC holds state, and that is basically everything today. Including external devices, like everything connected via USB (actually those have two controllers minimum, a USB controller which holds communication link state and a controller for the actual device function, like being a keyboard or mouse).

It totals to hundreds of controllers, and it simply isn't feasible to standardize a way for this entire system to somehow store an overall consistent runtime state. That is why plan B is taken: just re-establish that state every time. We call this process "booting" or "initializing".

Post reply on HN