Podcast explores ways to boot Linux devices faster
Jun 7, 2007 — by LinuxDevices Staff — from the LinuxDevices Archive — viewsTimeSys has published a half-hour podcast in which two developers discuss strategies for reducing the real and perceived boot times of embedded Linux devices. Topics broached include staged booting, SysV inefficiencies, pruning kernel protocols and polling cycles, bootup message suppression, and initramfs, among others.
The Podcast is the eleventh in an embedded Linux podcast series hosted by Gene Sally and Maciej Halasz, both engineers at embedded Linux development services provider TimeSys. The caffeinated Sally and deliberate Halasz counter-balance one another well, with lots of interesting ideas welling up between the two of them.
Topics in this podcast include:
- Processors are getting faster, but also gaining more on-chip peripherals. Thus, developers need to “do more pruning in the kernel” so that unused peripherals are not initialized.
- Stripping the kernel of unneeded network protocols such as DHCP that may be enabled by default
- Removing unneeded kernel drivers
- Suppressing bootup messages once the kernel has been squared away; “premature optimization is the root of all evil,” however
- Staged booting can allow an important application to start prior to loading less important kernel functions as modules. Overall startup overhead is increased, while perceived boot speed is decreased; note that busybox can be built with “insmod.”
- Desktop linux uses SysV init scripts that were designed (a long time ago) for configurability, not speed; cutting SysV overhead can cut boot time “by a factor of 10,” Sally said.
- SysV “runlevels” are not needed or supported with busybox; SysV “init” can be simplified or replaced, although some type of initial application is required by the kernel.
- SysV init scripts typically start 15-20 services, while only half may be needed for an embedded system.
- Initrd filesystems can include some application threads, enabling devices to show activity almost instantly; this is a “nice approach for complex applications,” Halasz said
- The Linux kernel requires a root filesystem. Initramfs allows such a filesystem to occupy a ramdisk within the kernel's own memory space; however, applications must be written with care to avoid potential memory management problems.
The complete podcast runs 33 minutes, and can be downloaded here (direct mp3 link).
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.