userland boot time
Michael 'Mickey' Lauer
mickey at openmoko.org
Mon Jan 21 00:37:51 CET 2008
recently our system level team worked hard to improve the time spent
during u-boot and kernel initialization. The next task is even more
involving, since it has many potential consequences for applications.
The basic question is: How do we improve userland boot time without
compromising flexibility of the OpenMoko distribution.
Let me briefly discuss different alternatives here:
a) ditch sysvinit and use a monolithic script (think linuxrc). This
will have the most speed impact, but is a very invasive change
reducing a whole lot of the flexibility that the audience needs.
b) ditch sysvinit and use a better init system. This has a reasonable
speed impact and keeps OpenMoko flexible. However, it's quite a bit of work,
since OpenEmbedded is pretty sysvinit-centric -- yet.
c) keep sysvinit and just shuffle around runlevels and services. This
will have the least speed impact, but could be sufficient to improve
the user experience. We could, e.g. invent a new runlevel that only
starts the necessary services to get X starting up and then go to init
5, starting other services in the background while the user can
operate the device.
Obviously, option a) would be the _very_ last resort, if all else
I like option b) a lot. Going towards upstart not only allows
launching services in parallel, but even more important, it comes with
an event based system that could make the initscript mess much more
Option c) is something short-term that may result in something that's
"good enough", but not cleaner than what we have now.
Our focus needs to be on
* starting the UI at the earliest possible time and
* starting services only when they're necessary.
This also has positive effects on power consumption.
Dr. Michael 'Mickey' Lauer | IT-Freelancer | http://www.vanille-media.de
More information about the distro-devel