Systemd is the default init system for many popular Linux distributions (Arch, Debian, Ubuntu, openSUSE, Fedora, etc..). It should also be noted that some of those distributions allow users to use a different init system if they want.
One of the main argument that people who are against using systemd is that it does not follow on of UNIX'S core philosophies. 'Do one thing and do it well', instead systemd represents a collection of dozens of tightly coupled libraries. With responsibilities that exceed those of a simp...
OpenRC follows the UNIX philosophy of 'do one thing and do it well', while it's true that it has more features than sysvinit, it does not stay away from its primary function with unnecessary added features.
Since init starts tasks serially, it has to wait for a certain task to finish in order to start the next one. But when startup processes end up I/O blocked, this leads to considerable delays during boot.
Every init script spawns at least sh/dash/bash, and probably also additional processes such as cat, echo, start-stop-daemon, etc, just to start a single daemon that may not even be needed at the time of boot. This massive overhead results in poor performance, and is a killer for embedded systems.
One of the runit project's principles is to keep the code size small. As of version 1.0.0 of runit, the runit.c source contains 330 lines of code; the runsvdir.c source is 274 lines of code, the runsv.c source 509. This minimizes the possibility of bugs introduced by programmer's fault, and
After the system's one time tasks (stage 1) are done, the system services are started up in parallel. The operating system's process scheduler takes care of having the services available as soon as possible.