“At the end of last year, to demonstrate my company’s swiftBoot service, I put together a rather impressive demo. Using a Renesas MS7724 development board I was able to achieve a one second cold Linux boot to a Qt application. Here’s the demo.”
“At the end of last year, to demonstrate my company’s swiftBoot service, I put together a rather impressive demo. Using a Renesas MS7724 development board I was able to achieve a one second cold Linux boot to a Qt application. Here’s the demo.”
Didn’t you guys cover this when it happened in September?
Then I must have missed it, I don’t remember having seen the news item.
EDIT : Nevermind
Edited 2011-01-14 16:41 UTC
Qt Embedded a bit “last year”. The really exciting stuff is the “Lighthouse” project, that allows Qt to run pretty much everywhere, fast – adaptation to graphics systems is done by plugins, which are relatively easy to create.
As an example, a lone hacker was able to make Qt run on Android using Lighthouse. Lighthouse is also the way Qt will run on Wayland.
Lighthouse will be officially released with Qt 4.8.
I spend some time too doing that. I can down to 7 second to full boot and 10 to X on a 5400rpm hard drive. Using xfbdev was a bit faster to boot and Qt performances were good, but GTK apps fail to run at decent speed. To get that:
-I start useless services after complete boot,
-Rely on precisely timed disk prefetch
-Avoid IOwait
-Use scripts until some daemon are fully loaded (like parsing dmesg and use mknod to do udev job until the boot process is over, as udev is the slowest of them all.
-Replace startx with sometinng lighter (loop+wait 0.01 until it is ready to start the WM
-Use a faster but still as flexible as KDE WM like the (great) AwesomeWM
-Never spend time without IO, start to load Qt and KDElibs as soon as evertthing else is in the cache.
-Strip down the kernel to a monolithic binary (no module, drop the router stack and all uneeded stuff enabled by default)
-Use -Os for all packets when compiling
-Replace Bash with Dash for the root use
-Replace the DM (KDM/GDM) with a C program that:
—>Swtich the SUID/GUID to the corect user (auto login)
—>create the necessary env vars and create a process shell
—>fork
—>fork1 wait 10 second to create the getty (CTRL+F1,F2, etc)
—>fork0 launch the new startX script
—>fork1 start the other services and load the missing modules like wifi.
-Drop runlevel and manage them manualy (no inittab)
-Be quiet, print as little as possible, printing on framebuffer is slow and lock everything in IOwait mode.
-Drop services dependency tracking (be smart here)
-Start everything in parallel as long as it make sense
-Use as little command as possible
-Remove the #!/bin/bash where it should be #!/bin/sh
Edited 2011-01-14 20:53 UTC
I got Haiku to boot in around 7 seconds as well. To get that I did:
– Install Haiku onto a partition.
– Boot the OS
On a serious note, the slides that are linked on the site are a pretty interesting read.
Edited 2011-01-15 00:57 UTC
Install onto a SSD and booting Haiku-OS drops to less than 5 seconds on 1.67GHz Netbook.
Edited 2011-01-15 04:03 UTC
Yeah, we are still slow. We should turn down the logging and optimize a few things, but atm we want the info from the logs.
Is the required amount for a trip to the coffee pot. Please don’t boot faster than that, thank you.
http://www.osnews.com/story/20475 (tricking the bios)
http://www.qnx.com/download/feature.html?programid=17991
http://blog.internetnews.com/skerner/2009/07/linux-achieves-1-secon…
Kochise
on 300 MHz ARM, NAND flash:
http://www.makelinux.com/emb/fastboot/