Linux Boot in One Second – Musings About BIOS Evolution

The title of this post should be taken with a truckload of salt: as far as I know there’s no way to boot a complete Linux distribution in one second. But it seems that General Software has developed a BIOS that can boot to LILO in one second – and that’s not bad at all! Basically, all the unnecessary things are skipped, such as waiting for the video card to load its firmware, detect devices, and so on. This enables the BIOS to boot incredibly quickly.

But heey… Wait a minute. If the hard disk isn’t detected yet, how can the bootloader start the OS?

Being both lazy and philosophically-minded I’ll try to speculate about the answer to that. My guess would be that all data that would be detected by a normal BIOS has to be hard-coded one way or another; the BIOS data has to be manually entered, or possibly the BIOS has a “detect everything now and then save the config” mode that’s not always run. That’s actually pretty neat…for embedded systems. It sounds completely useless for desktop environments where you change keyboards and mice and video cards and electrical pets (what?!) every now and then. But since the article mentions the medical device market, I’d wager that this isn’t a big deal for the target devices.

In fact, I wonder if this kind of optimized BIOS couldn’t be of value to a other embedded devices like home gateways and such as well.

But hey again, wait another minute or two. The slow boot times of home gateways is probably due to slow flash reading times rather than a second or two on the BIOS level. In fact, come to think of it, I don’t know if I’ve ever seen a BIOS on these devices. So, it seems like this optimized BIOS is only relevant to embedded devices of specific architectures - of which maybe the aforementioned medical devices belong. But what about non-embedded devices? Wouldn’t this improved BIOS be useful for desktop computers too?

Short answer: meh.

Longer answer: don’t think so.

Full answer: in all probability, optimizing the BIOS would result in minimal boot time improvements. Detecting new devices and loading the video firmware doesn’t take all that long – the biggest culprit is loading the actual OS itself.

But, and this is a big but, the article also mentions how they increase the Vista loading time from 74 seconds to 24 by adding a UDMA-capable driver to the BIOS. I don’t really see how they can group these two BIOS improvements into the same article – they seem to deal with wildly different things! Stripping the BIOS of unnecessary checks is quite different to adding a driver that increases efficiency a lot; the former isn’t very useful in most cases, but the second is incredibly useful!

And that got me thinking… The BIOS is often the bottleneck; wouldn’t it stand to reason to evolve a BIOS as much as possible to make the OS faster? If adding a UDMA driver speeds up the boot process by 300%, isn’t that the way to go for other bottlenecks as well – add improvements at the lowest level?

Oh wait. What this would end up as sounds suspiciously like a microkernel. I wonder if there’ll ever be a hybrid BIOS/microkernel.

2 Responses to “Linux Boot in One Second – Musings About BIOS Evolution”

  1. GBGames Says:

    Actually, I had heard about some open source BIOS that booted way quicker than the normal one, and one of the developers was quoted as saying something like “Yeah, it loads much faster. We have no idea what the main manufacturers are doing that makes their stuff so slow.”

    But, seriously, how often do you see a BIOS screen? My uptime has been at least a month or two. B-)

  2. Karja Says:

    Haha.. Touché! I have to reboot every other week or three if I’ve played some strange game that messes up the driver, but I never reboot other than that. So I guess there’s not much point in optimizing desktop loading times at all.

    (If the BIOS doesn’t represent a bottleneck for the OS even in running state, that is. Then it’s a completely different issue.)

Leave a Reply

Copyright © 2009 KarjaSoft