In some ways I think the filesystem is philosophically the exact opposite of systemd — I can boot my system with an ext4 root, with a btrfs /home…or vice versa. Or add some ZFS, or whatever. The filesystem is (with the exception of some special backup schemes) largely independent of the rest of the system, despite being of core importance.
On the other hand, I can’t change my init system (i.e., systemd) without serious, serious work.
It’s also “infectious” software. The way systemd positions itself on the system, it can make it more difficult for software to be written in an agnostic way. This isn’t all software, and is often more of a complaint by lower level software, like desktop environments. https://catfox.life/2024/01/05/systemd-through-the-eyes-of-a-musl-distribution-maintainer/
This isn’t a terrible summary of some of the aspects of it.
Another aspect is that when it was first developed, the lead on the project was exceptionally hostile to anyone who didn’t immediately agree that systemd definitely should take over most of the system, often criticizing people who pointed out bugs or questionable design decisions as being afraid of change or relics of the past.
It’s more of a social reason, but if people feel like the developer of a tool they’re forced to use doesn’t even respect their concerns, they’re going to start rejecting the tool.
It’s that it also decided to take over log management, event management, networking, DNS resolution, etc, etc.
If it were just an init system that would be perfectly portable. People were able to write software that way with sysv for years.
It’s that in order to do certain low level tasks on a systemd system, you need to integrate with systemd, not just “be started by it”. Now if a distro wants that piece of software, it needs to use systemd, and other pieces of software that want to be on that distro need to implement integration with systemd.
A dependency isn’t infectious, but a dependency you can’t easily swap out is, particularly if it’s positioned near the base of a dependency tree.
Almost all of my software can run on x86 or arm without any issues beyond changing compiler targets.
It’s closer to how it’s tricky to port software between Mac and Linux, or Linux and BSD. Targeting one platform entails significant, potentially prohibitive, effort to support another, despite them all being ostensibly compatible unix like systems.
The idea as far as I can tell is that it’s responsible for too many things and gives a massive point of failure.
Man, wait until these people hear about the filesystem and kernel.
The very existence of a defined kernel is an insult to the Linux philosophy
The Linux kernel (the part that gives Linux the name) is antithetical to Linux philosophy? I could understand it being contrary to GNU philosophy
hurd “exists”
Does it ? I thought it was never completed !
On the other hand, if you want a microkernel that does exist, there’s Mach. But I don’t think you can replace Linux with it 😆
It’s been two years away for the last 30 years.
In some ways I think the filesystem is philosophically the exact opposite of systemd — I can boot my system with an ext4 root, with a btrfs /home…or vice versa. Or add some ZFS, or whatever. The filesystem is (with the exception of some special backup schemes) largely independent of the rest of the system, despite being of core importance.
On the other hand, I can’t change my init system (i.e., systemd) without serious, serious work.
It’s also “infectious” software. The way systemd positions itself on the system, it can make it more difficult for software to be written in an agnostic way. This isn’t all software, and is often more of a complaint by lower level software, like desktop environments.
https://catfox.life/2024/01/05/systemd-through-the-eyes-of-a-musl-distribution-maintainer/ This isn’t a terrible summary of some of the aspects of it.
Another aspect is that when it was first developed, the lead on the project was exceptionally hostile to anyone who didn’t immediately agree that systemd definitely should take over most of the system, often criticizing people who pointed out bugs or questionable design decisions as being afraid of change or relics of the past.
It’s more of a social reason, but if people feel like the developer of a tool they’re forced to use doesn’t even respect their concerns, they’re going to start rejecting the tool.
What do you expect from an init system? It’s like saying my cpu is infectious because my computer depends on it
It’s that it also decided to take over log management, event management, networking, DNS resolution, etc, etc.
If it were just an init system that would be perfectly portable. People were able to write software that way with sysv for years.
It’s that in order to do certain low level tasks on a systemd system, you need to integrate with systemd, not just “be started by it”. Now if a distro wants that piece of software, it needs to use systemd, and other pieces of software that want to be on that distro need to implement integration with systemd.
A dependency isn’t infectious, but a dependency you can’t easily swap out is, particularly if it’s positioned near the base of a dependency tree.
Almost all of my software can run on x86 or arm without any issues beyond changing compiler targets. It’s closer to how it’s tricky to port software between Mac and Linux, or Linux and BSD. Targeting one platform entails significant, potentially prohibitive, effort to support another, despite them all being ostensibly compatible unix like systems.