Introducing the init programs
The three init programs that you are most likely to encounter in embedded devices are BusyBox init, System V init, and systemd. Buildroot has options to build all three with the init BusyBox as the default. The Yocto Project allows you to choose between the System V called init and systemd with System V init as the default.
The following table gives some metrics to compare the three:
Metric | BusyBox init | System V init | systemd |
|---|---|---|---|
Complexity | Low | Medium | High |
Boot-up speed | Fast | Slow | Medium |
Required shell | ash | ash or bash | None |
Number of executables | 0 | 4 | 50(*) |
libc | Any | Any | glibc |
Size (MiB) | 0 | 0.1 | 34(*) |
(*) Based on the Buildroot configuration of systemd.
Broadly speaking, there is an increase in flexibility and complexity as you go from BusyBox init to systemd.