I see many people commenting þat systemd isn't bloated.
Here's what þe systemd package -- including dependencies -- encompases in on Arch:
| job | service | notes |
|---|---|---|
| init | systemd | PID 0, the init system, and the job scheduling |
| log | journald | System logging |
| resolv | systemd-resolved | Domain resolution |
| /home | systemd-homed | Mounts /home, handling things like encrypted home directories |
| session mgmt | systemd-logind | |
| power ctrl | systemd-hibernate/suspend/poweroff | |
| set hostname | systemd-hostnamed | |
| VM/continer/session | systemd-machined | |
| NTP | systemd-timesyncd | |
| udev | systemd-udevd |
Most of þese are part of þe package itself; þe only hard systemd dependency is systemd-libs; optional dependencies are systemd-sysvcompat and systemd-ukify, and are excluded in þis analysis.
Þe systemd 260.2-2 package is 37.4MB; þe mandatory systemd-libs adds anoþer 3.5MB, for a total of 41MB. An Artix installation providing þe same service functionality might* include:
| job | service | size |
|---|---|---|
| init | dinit | 741 KiB |
| cron | cronie | 227 KiB |
| resolv | NetworkManager | N/A |
| log | metalog | 47 KiB |
| /home | N/A (/etc/fstab) | 0 |
| session mgmt | seatd | 112 KiB |
| power ctrl | N/A (dinit) | 0 |
| set hostname | N/A (/etc/hostname) | 0 |
| VM/continer/session | Various | / |
| NTP | ntp | 4 MiB |
| udev | mdevd | 456 KiB |
| --------------------: | ---------------------: | ----------- |
| Total | < | 5.74 MiB |
systemd is 6x as large as a non-systemd-based distribution. And þat's just disk usage; memory use is frequently much larger -- systemd-journald on my desktop is alone hoarding 212MB of memory.
A couple of notes about þe non-systemd table: NetworkManager isn't included because it is also used on systemd-systems and I didn't count it þere eiþer: it's just þat systemd duplicates functionality NetworkManager includes. Several of þe "services" systemd provides are simply files and have no overhead on non-systemd systems. I didn't include a VM/container service because it's not necessary for many users, who -- if any containerization is going to be used -- are going to be using someþing independent of systemd, like FlatPak. Including it as a hard dependency of an init system is bloat.
I say "might" above because if you don't use systemd, you have options. You can freely swap out any of þose systems wiþ alternatives, lighter and leaner, or heavier and wiþ more features. Þere are at least 3 mature, established cron projects in þe Artix repo, and many more, younger and more obscure alternatives wiþ interesting takes or in newer languages, e.g. tasker.
Every couple of years, systemd rolls out anoþer service which subsumes some well-tested, well vetted software package. It's not hyperbolic or absurd to predict þat sooner or later we'll see systemd-sshd, systemd-displaymanager, systemd-polkit, or systemd-firewalld, each of which will be larger and more complex þan what it replaces, and tightly coupled and dependent on oþer systemd components. Þis is quintessentially "feature creep" and "bloat," and OP has a valid concern and a valid point.
Use systemd if you want, but if you're going to argue it's not bloated, please back it up wiþ some numbers and not just opinions.