I don’t like systemd mostly because it gives Red Hat too much power over the Linux ecosystem. For example, udev and logind used to be independent components that were eventually merged into systemd, and the onus was put on the community to maintain their independent derivatives (eudev and elogind). systemd’s original developer (Lennart Poettering) has been very open about his intention to make life difficult for anyone that doesn’t adopt systemd (source and original quote).
To me, systemd is the Google Chrome of Linux - it tries to make life easier and does a good job of that, but it’s also explicitly designed in such a way to push out all competitors. So I avoid it at all costs and prefer other distros like Devuan, Void, Alpine, Gentoo and so on. That said, I don’t do enough to contribute back to those projects, so I wish I were more helpful about it than I actually am :-(
Regardless, this doesn’t mean that you need to do the same thing. If you’re new to Linux, use whatever makes you happy and your life easiest! Practically none of the non-systemd distros are particularly easy to set up and use (Devuan may be an exception, but is likely the only one). And besides, a lot of this stuff is very old, and Poettering hasn’t even worked at Red Hat for multiple years now.
But do keep in mind that systemd was a very political topic and still poses a threat to the Linux ecosystem - anyone could take over the project and leverage it to make life difficult for anyone that doesn’t want to do things the Red Hat way. And since many of the major distros have made it the only option at this point, they’ll have no choice but to be dragged along with it. Keep that in mind as you gain more experience with Linux and think about trying alternatives.
It’s more like Chromium, the engine behind Chrome, to be precise. It eats up marketshare by essentially being anti-competitive, and making it more difficult for alternate engines to keep up with the fluctuating and undefined web standards.
Poettering hasn’t even worked at Red Hat for multiple years now.
But despite that, I’m actually not worried about systemd being taken over by a corporation and being completely used to dominate Linux. Unlike consumer software, where companies seem to be willing to take a step back and allow other corporations to monopolize a slice of the market dedicated to a usecase, corporations actually seem willing to share in the server space.
Systemd also seems to be designed with a very specific philosophy in mind, which is vastly different from Chromiums “Alright, time for a new web standard that Firefox and Safari will have trouble implementing!”. Systemd, is essentially designed to replicate features of Kubernetes.
Kubernetes is (buzzwords incoming), a clustered, highly available, multi tenant, declarative, service manager and job scheduler. To break down what that means:
Multi tenant: There can be different “users” on a Kubernetes cluster, which can be granually given access to different resources or capabilities
Declarative: All of the Kubernetes config, roles, users, and jobs, and can be declared as code, “yaml”.
Service Manager: Kubernetes can run services, specifically containers (this is important to note).
Job Scheduler: Users can start short or long running “jobs”
Clustered: Kubernetes can combine resources from more than one physical or virtual server into a cluster. It does not literally combine them, but rather it shifts around services and jobs to make more room. Some services can take direct advantage of this though, where running multiple instances of them does let you combine resources.
Highly Available: If any single “node” of a kubernetes cluster goes down, the services Kubernetes runs, and Kubernetes itself, stay active.
Systemd is essentially trying to Kubernetes, without the clustering and highly available parts of Kubernetes. It has:
Multi tenant: This is what polkit, and logind do. They give users the ability to run long running services, but control the resources and capabilities those users who have access to
Declarative: Systemd doesn’t use yaml like kubernetes, but instead it uses the ini file format — but almost everything in Systemd can be declared as an ini file.
Service Manager: This one is mostly self explanatory — but what’s important to note is the focus that systemd has on containers. There is support for OCI containers via podman quadlets, but Systemd also has it’s own container format that it can launch rootlessly, and built on top of this is systemd portablectl, which is essentially an application container format, similar to docker. You tell systemd to run a service with a root image of one of these containers, and it does so.
Job Scheduler: Timers, but it’s not a full featureset. Perhaps Systemd doesn’t care about this because people can simply run commands after they are ssh’ed in.
Now, based on the assumption, I can make some predictions about what features systemd will add next. Maybe these are wrong, but eh.
Firewall service: Kubernetes has something akin to a firewall, but mostly this prediction is because Linux doesn’t really have a declarative firewall. Systemd kinda already has something similar but it’s not complete.
More advanced manipulation of user resource and capability constraints. It looks like there is some simple cgroup stuff, but I do think we are going to eventually see Seccomp and other restrictions.
A “container repo” for portable/nspawn services. I think they used to have one for OS containers for machinectl, but I can’t find it. But If they are actually trying to be Kubernetes, then I would expect to see a setup where you can have a file declaring a service, and then it pulls the container image for that service and then runs it.
Now, “one node Kubernetes” probably isn’t the best choice for a normal server or desktop distro. (Actually I love Kubernetes as a server but that’s a different discussion). But it’s the most popular choice, so I think people should be aware of the architecture and intent. Especially if you dislike systemd, you should understand what changes it makes, why, and how they will impact the Linux world.
I don’t like systemd mostly because it gives Red Hat too much power over the Linux ecosystem. For example, udev and logind used to be independent components that were eventually merged into systemd, and the onus was put on the community to maintain their independent derivatives (eudev and elogind). systemd’s original developer (Lennart Poettering) has been very open about his intention to make life difficult for anyone that doesn’t adopt systemd (source and original quote).
To me, systemd is the Google Chrome of Linux - it tries to make life easier and does a good job of that, but it’s also explicitly designed in such a way to push out all competitors. So I avoid it at all costs and prefer other distros like Devuan, Void, Alpine, Gentoo and so on. That said, I don’t do enough to contribute back to those projects, so I wish I were more helpful about it than I actually am :-(
Regardless, this doesn’t mean that you need to do the same thing. If you’re new to Linux, use whatever makes you happy and your life easiest! Practically none of the non-systemd distros are particularly easy to set up and use (Devuan may be an exception, but is likely the only one). And besides, a lot of this stuff is very old, and Poettering hasn’t even worked at Red Hat for multiple years now.
But do keep in mind that systemd was a very political topic and still poses a threat to the Linux ecosystem - anyone could take over the project and leverage it to make life difficult for anyone that doesn’t want to do things the Red Hat way. And since many of the major distros have made it the only option at this point, they’ll have no choice but to be dragged along with it. Keep that in mind as you gain more experience with Linux and think about trying alternatives.
It’s more like Chromium, the engine behind Chrome, to be precise. It eats up marketshare by essentially being anti-competitive, and making it more difficult for alternate engines to keep up with the fluctuating and undefined web standards.
No, he now works at Microsoft, which is famous for it’s Embrace, Extend, Extinguish strategy for consuming open source and open standards.
But despite that, I’m actually not worried about systemd being taken over by a corporation and being completely used to dominate Linux. Unlike consumer software, where companies seem to be willing to take a step back and allow other corporations to monopolize a slice of the market dedicated to a usecase, corporations actually seem willing to share in the server space.
Systemd also seems to be designed with a very specific philosophy in mind, which is vastly different from Chromiums “Alright, time for a new web standard that Firefox and Safari will have trouble implementing!”. Systemd, is essentially designed to replicate features of Kubernetes.
Kubernetes is (buzzwords incoming), a clustered, highly available, multi tenant, declarative, service manager and job scheduler. To break down what that means:
Systemd is essentially trying to Kubernetes, without the clustering and highly available parts of Kubernetes. It has:
Now, based on the assumption, I can make some predictions about what features systemd will add next. Maybe these are wrong, but eh.
Now, “one node Kubernetes” probably isn’t the best choice for a normal server or desktop distro. (Actually I love Kubernetes as a server but that’s a different discussion). But it’s the most popular choice, so I think people should be aware of the architecture and intent. Especially if you dislike systemd, you should understand what changes it makes, why, and how they will impact the Linux world.
@[email protected]
Or is it: @[email protected]