2. Speaking of kernel code, have you looked at how much stuff is going on in the kernel? Why does pid 1 get this much scrutiny, but the kernel, which definitely can't die, gets a free pass? On my system there are 77 kernel threads. Seventy-seven! What are they all doing??
And there are plenty of alternative kernels you can use. Multiple ones even have Linux binary compatibility.
3. Is the argument for suckless init the same as that for EWONTFIX init (on which it is based)? If so, would a fork of systemd that split it into two processes, PID 1 that reaps reparented zombies and tells PID 2 about it (over a one-way pipe, so PID 1 has no increased attack surface), be an acceptable option?
ps -eLf | grep '\['
I put in a grep root for good measure: ps -eLf | grep '\[' | grep root
Incidentally, why would a zombie process need to be reparented? Surely it has just not been removed from the process table and all that needs to occur is to remove it fully... I can understand reparenting an orphan process, but a zombie process?The point I'm making is not so much that I'm curious (although I am), but that the kernel is exempt from the scrutiny that systemd gets, and the kernel has a ton of fragile crap running at full privilege. If systemd even shipped three XFS-specific binaries, people would be upset, but the kernel can run three persistent kernel threads and nobody cares.
I just tested this out:
chris@libreoffice-ia64:~$ ps -eLf | grep '\[' | grep xfs
chris@libreoffice-ia64:~$ sudo modprobe xfs
[sudo] password for chris:
chris@libreoffice-ia64:~$ ps -eLf | grep '\[' | grep xfs
root 6731 2 6731 0 1 16:53 ? 00:00:00 [xfsalloc]
root 6736 2 6736 0 1 16:53 ? 00:00:00 [xfs_mru_cache]
chris@libreoffice-ia64:~$
chris@libreoffice-ia64:~$ sudo rmmod xfs
chris@libreoffice-ia64:~$ ps -eLf | grep '\[' | grep xfs
chris@libreoffice-ia64:~$My point isn't so much what my three kernel threads are doing as why nobody asks these questions, in general, about the kernel. Just about every criticism of systemd applies double to the kernel, but nobody is forking Debian to replace the kernel. (And very few people are contributing to the existing efforts already in Debian to officially support alternative kernels.)
That is, actually doing the work of init i.e. spawning daemons and services.
It makes no sense for such tool to control network interfaces, logging, device sync, power mode changes, and well... I'm certainly forgetting one or two dozen systemd modules.
As for those other tools... well, the systemd init process doesn't manage those either. The anciliary modules do, and quite well too really. I'm not entirely sure why people think that this is much different to running a SysV script to execute start a daemon!