Author: Isaac Dunham Date: To: T.J. Duchene CC: 'dng' Subject: Re: [DNG] systemd in wheezy, was: Re: bummer
On Thu, Jul 09, 2015 at 03:23:25AM -0500, T.J. Duchene wrote: >
>
>
>
> From: James Powell
>> Systemd is not the answer to GNU/Linux any more than BusyBox is, and by all technicality, systemd is just an unmatured BusyBox. > While there are some analogies, systemd is definitely not an “unmatured BusyBox”.
Agreed, but I'd like to elaborate.
Systemd and busybox are both packages containing functionally unrelated
code that uses a common library, yes.
That's the extent of the similarity.
Busybox is a collection of mostly *drop-in* replacements for common tools,
where systemd implements its own interfaces.
As a result, there was never a need to patch openntpd (for example) to
make it log with busybox syslogd, nor to patch busybox ntpd to work with
syslog-ng.
It's possible to use busybox tar to extract bzipped tarballs even if you
completely disabled bzip2 support when building busybox.
As well as letting you use components from other projects, Busybox lets
you disable anything you want: the shells, mdev, init, cttyhack, getty,
the runit infrastructure, the dhcp client, ifconfig, route, ip, blkid,
mount....
In contrast, systemd has a set of daemons that you must build, and then
other sets that can be added to that.
Many of these daemons depend on "APIs" provided exclusively by other
daemons in the systemd package.
Finally, Busybox combines all its seemingly unrelated functionality
in one package so as to provide a single binary that can boot or
rescue a system in as little space as possible. You will have a hard
time building a single binary from multiple packages.
In contrast, systemd creates a number of binaries that could not
possibly be combined: you will never have the same entrypoint to
the bootloader and init, though you could put init in a container
that's embedded in the kernel and stub the kernel with the bootloader.
That's no more a single binary than a self-extracting archive is.
And there's no logically consistent reason to put a bootloader, an
init system, a GUI that needs GTK, a time daemon, and a DNS server
all in the same package if they are not going to be combined and
are "modular".