Embedded Linux 1-Second Cold Boot To QT
An anonymous reader writes "The blog post shows an embedded device cold booting Linux to a QT application all in just one second. This post also includes a link which describes what modifications were made to achieve this."
The have a slideshow here: http://www.slideshare.net/andrewmurraympc/elce-the , it's interesting starting at slide 19. Especially the executable reordering to defer loading of UI event handling code is impressive.
NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
I had the same reaction. The answer lies in the wikipedia, not in the unhelpful intermediate posts:
http://en.wikipedia.org/wiki/Qt_(framework)
Qt "is a cross-platform application framework that is widely used for developing application software with graphical user interface (GUI) (in which case Qt is referred to as a widget toolkit when used as such), and also used for developing non-GUI programs such as command-line tools and consoles for servers"
This is the NSA, we're gonna geet U h@x0r5! Also, what is a h@x0r5?
Any details on what they've done? Is it largely hardware-specific initialisation, or have they made changes that would be useful on a traditional desktop?
From the article:
"We've not applied any specific intellectual property but instead spent time analysing where boot delays are coming from and simply optimising them away. The majority of the modifications we make usually fall into the category of 'removing things that aren't required', 'optimising things that are required', or 'taking a new approach to solving problems' and are tailored very precisely to the needs of the 'product'."
Also:
"If you're interested in exactly what modification I made and a little more about the approach taken - you may be interested in these slides [http://www.slideshare.net/andrewmurraympc/elce-the] which I presented at ELC-E 2010"
That's actually common practice in profile guided optimization, put commonly used code close together in the image to minimize the number of pages loaded.
Another optimization that was common old Mac compilers was "dead-stripping", where they avoided linking in any functions that were never called. Apparently this isn't commonly done and instead if a single function in a file is called, then ALL are linked in, at least when I looked into it for Linux a while back.
Actually if you custom compile your kernel to strip out every device driver that's irrelevant to your system you will save an absolute trivial amount of boot time at best. Go to TFA and click the slideshow to see where the real slogs of the boot lie.
The Story of Mel! http://foldoc.org/The+Story+of+Mel (That's not the original, that's the "free verse" version which is better IMHO.) It might even be a true story! http://en.wikipedia.org/wiki/Mel_Kaye
There is also a PDF of the slides on the elinux.org web site under the 'Boot Time' page.
My thoughts exactly, I don't want to use non-free adobe flash and slideshare does not work with gnash. Fortunately a very similar looking PDF does seem to be available at
http://elinux.org/images/f/f7/RightApproachMinimalBootTimes.pdf