1. Introduction

serel provides synchronisation primitives to init [1] that allow a computer's services to start and run in parallel. This reduces boot time because service startup is often the most time-consuming phase of the boot process, and because dependencies between services seem to be relatively rare.

serel is designed to be useful on a wide array of operating system platforms, even though there is considerable diversity in the way that operating systems start services [me00]. Aiming to support diversity, serel is designed so as not to be responsible for starting services. Init starts services; platforms are free to use the serel framework in diverse ways.

In order for serel to be usable as early as possible within user-space, the implementation does not depend on any services started by init.

Table 1. Phases of boot

PhaseDescription
Bios The bios locates and initialises hardware. A boot loader may run. Control passes to the kernel.
KernelThe kernel starts and passes control to init in user space.
User-space - "basic" servicesThe "basic" services may include: filesystem check and mount, load and initialise device drivers, and initialise system time. .
User-space - "optional" servicesThe "optional" services may include: logging, networking, mail, network filesystems, web server, the windowing system etc.

The name "serel" derives from "SErvices and RELationships". The name hints at the core idea - that explicit service relationships allows operating systems to boot faster.

serel is open-source software, licensed under the GNU General Public Licence, Version 2.

More information on serel is available at http://www.fastboot.org.

Notes

[1]

On many *nix systems, the first user-space process is named init. init (or a child like rc) is responsible for starting system services.