I'd like to know what would be the options to tweak Linux for having a very fast boot. As fast as MorphOS... Is that possible?
One of the beauties of MorphOS is that it loads it's drivers for most of the system up only when required.
You start your system and then it loads the graphics to get a display, and input so you can move mouse and keyboard around.
Audio (AHI) isn't loaded until you play an audio file in an audio application which loads ahi.device. Network device (viarhine.device etc.) isn't used until you start the TCP/IP stack. Serial ports aren't touched until you use serial.device.
I booted my Efika just now, and it was 26 seconds (I have kernel timestamps turned on always :) before it had even finished most of the driver loading.
No amount of parallelising startup scripts fixes the fact that it took 26 seconds to even get to the startup scripts :)
Breaking system support into modules works, but it is not very generic; you also have to mess with initramfs and initrd tools to get the required-for-boot modules included in the kernel. Loading the huge kernel image is ALSO a slow point in the boot process (6 seconds on my Efika, that's a 6MB kernel+initrd), the CHRP boot loader and basic kernel init before drivers are even looked at is 12 seconds;
[ 0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[ 12.951817] Console: colour dummy device 80x25
I managed to shave 5 seconds off boot time here by setting (on Debian), /etc/defaults/rcS option RAMRUN and RAMLOCK. Another few seconds by making my default '/bin/sh' use dash (Debian Ash Shell) instead of busybox or bash (which incur a loading time, bash is 800k and dash is barely over 100k..).
There is some work in Gentoo for getting bash 'resident' so that loading time goes away. I don't know the full details of it.
Having an uncompressed kernel really doesn't help much and I'm not sure 'quiet' really improves the time unless you are spewing to the serial port and have a LOT of data going to it.
Ubuntu have done some work on this (this is where I got the idea to use dash and RAMRUN, RAMLOCK) and they have some fairly good tools which trade memory usage (not so sure this is wise on Efika) for less disk access, and preloading data;
There are a couple of entries here about preload and using dash;
.. which is mostly work done here;
http://initscripts-ng.alioth.debian.org ... harts.html
Some of those will completely trash your system if you don't have correct tools in initramfs!!
There are tons of ways to do it, but a lot of them impact other system configurations. If your goal is to get to KDE fastest, then it may not match the guy who needs to startup as reasonably fast as possible and then have a lot of memory available (is it okay to boot really fast but use all the memory, but slow application start time by paging back and forth?)
There's also the ability - check out Giorgio's patch set - to put the 5200B into "deep sleep" mode. With a switch connected to the IrDA connector you can "suspend" your Efika to a low power state instead of turning it off. Then simply push the switch and your boot time is less than a few seconds..
Matt Sealey, Genesi USA Inc.
Product Development Analyst