Forks of systemd are closely tied to critiques of it outlined in the above section. Forks generally try to improve on at least one of portability (to other libcs and Unix-like systems), modularity, or size. A few forks have collaborated under the FreeInit banner.
Forks of components eudev In 2012, the
Gentoo Linux project created a
fork of
udev in order to avoid dependency on the systemd architecture. The resulting fork is called
eudev and it makes udev functionality available without systemd.
elogind Elogind is the systemd project's "logind", extracted to be a standalone daemon. It integrates with PAM to know the set of users that are logged into a system and whether they are logged in graphically, on the console, or remotely. Elogind exposes this information via the standard org.freedesktop.login1
D-Bus interface, as well as through the file system using systemd's standard layout. Elogind also provides "libelogind", which is a subset of the facilities offered by "libsystemd". There is a "libelogind.pc"
pkg-config file as well.
systembsd In 2014, a
Google Summer of Code project named "systembsd" was started in order to provide alternative implementations of these APIs for
OpenBSD. The original project developer began it in order to ease his transition from Linux to OpenBSD. The systembsd project did not provide an init replacement, but aimed to provide OpenBSD with compatible daemons for , , , and . The project did not create new systemd-like functionality, and was only meant to act as a wrapper over the native OpenBSD system. The developer aimed for systembsd to be installable as part of the
ports collection, not as part of a base system, stating that "systemd and *BSD differ fundamentally in terms of philosophy and development practices." It was forked by the
Parabola GNU/Linux-libre developers to build packages with their development tools without the necessity of having systemd installed to run systemd-nspawn. Development ceased in July 2018.
Fork including init system uselessd In 2014,
uselessd was created as a lightweight fork of systemd. The project sought to remove features and programs deemed unnecessary for an init system, as well as address other perceived faults. uselessd supported the
musl and
μClibc libraries, so it may have been used on
embedded systems, whereas systemd only supported
glibc. The uselessd project had planned further improvements on cross-platform compatibility, as well as architectural overhauls and refactoring for the Linux build in the future. == All Systems Go! ==