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."
If the first thing that enters your mind when reading "QT" is QuickTime, you're on the wrong website I'm afraid.
If he came here for abuse, it's definitely the right website!
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?
I have to say, the most impressive/innovative tweak, to me, was the re-ordering of required functions in the compiled binary. Doing so allowed them to reduce load time, by making it that only two blocks had to be demand-read off the flash filesystem, instead of four.
That's some crazy, use-the-drum-spin-as-timing, innovative thinking right there. Serious kudos.
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.
This is the year of Linux on the de- wow, that was quick.
"We live in a global world" - Harvey Pitt, former Securities and Exchange Commission Chairman
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.