this post was submitted on 12 Nov 2023
676 points (94.6% liked)
linuxmemes
21378 readers
1183 users here now
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
- Instance-wide TOS: https://legal.lemmy.world/tos/
- Lemmy code of conduct: https://join-lemmy.org/docs/code_of_conduct.html
2. Be civil
- Understand the difference between a joke and an insult.
- Do not harrass or attack members of the community for any reason.
- Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
- Bigotry will not be tolerated.
- These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
3. Post Linux-related content
- Including Unix and BSD.
- Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of
sudo
in Windows. - No porn. Even if you watch it on a Linux machine.
4. No recent reposts
- Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't fork-bomb your computer.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Use systemd if you want. It's not perfect, but nothing is. There are certainly good reasons to use systemd, including, but not limited to, that it's the default on most distros and you don't want to mess with init systems. My only complaint is that too much software and documentation is written with the expectation that you have systemd for no good reason, which makes it harder to leave, which makes more people stick with it, which is an excuse to neglect support for other init systems even more.
I think the reason is that almost everyone uses systemd
Kind of circular reasoning
Circles are superior geometric forms. Peak design!
https://youtu.be/thOifuHs6eY
That just sounds like a reason to not bother supporting Linux, when Windows is so much more popular
Yeah. That was my point. It's a self fulfilling cycle of people using it because it's all that's supported, and it being all that's supported because people use it. I think that is a problem. That's the same reason most software is for Windows. I don't think that's a good reason.
You get a lot more transparency with the other init systems. Systemd is a big system that does lots of things and it's not always possible to see everything it's doing, because it's doing a lot.
It also likes to hide things behind port redirections and binary storage of things that have always been text before so you pretty much have to use their tools to even read them
I assume there's an advantage to the binary formats though. More efficient in terms of storage size? Easier to quickly search by a particular field even in huge files? Maybe something like that. (I genuinely don't know)
I can actually understand what's going on with other init systems. They're basically just a list of stuff that gets run before you even log in. I do not understand everything that systemd does. I like understanding what my computer is doing. Most people don't care about that, and there's nothing wrong with that, but systemd is not what I want. I feel forced into using it anyway though, because it can be a lot of work to avoid it, and there's no reason for that beyond the fact that not enough people care.
I get it. I'm in a small niche within a small niche. Nobody owes me an easy alternative to systemd. I'd still like one though.
Exactly. Other systems are clearly doing one thing: init. Systemd wants to do everything
Agreed. Was just looking at Podman's documentation the other day, and even though it'll run on distributions without systemd, for a second I thought cgroups might not even work without systemd. Glad that's not the case though, but I'm predicting a few problems down the road simply because I plan to use Alpine.
If you try to switch a distro that's already using Systemd to some other init system, you'll have so many broken things to fix!
I was just trying to make fun of how hard it is to replace Systemd. I am still gonna make the switch when I get some free time.
Debian lets you switch and AFAIK it mostly works fine. They provide both sysvinit and runit as alternatives. Packages are only required to provide systemd units now, however a lot of core packages still provide sysvinit scripts, and Debian provides a package
orphan-sysvinit-scripts
that contains all the legacy sysvinit scripts that package maintianers have chosen to remove from their packages.That's just in the official repository, of course. Third-party repos can do whatever they want.
None of the others are as deeply integrated into everything as systemd, they pretty much just handle starting things up so dropping in a replacement should be fairly straightforward. At least, it was until everything switched to systemd. Which is probably my biggest issue with it: that it integrates to the point you can't replace it anymore.
Honestly I don't know. I just know that desktop environments and a lot of other packages have hard dependencies on Systemd, at least on Arch and Debian based systems. Those packages include: base, flatpak, polkit, xdg-desktop-portals, and vulkan-intel. So yeah, it's nearly impossible to not break anything.
It's not systemd doing all the things completely unrelated to system initialization that it does that I have a problem with. It's systemd doing them worse than the existing tools that do those things that the systemd equivalents replace and Lennart Poettering being completely unable to fathom why anyone would ever want to use any piece of software other than his. systemd talks big game about being modular, but makes breaking changes to how those modules communicate without warning anyone, so if you dare to be a "systemd hater" as he calls them and replace one of those modules with an equivalent he isn't involved with, Heaven help you when he breaks the API of systemd that they hook into and the developers of your equivalent scramble to implement the binary protocol he thought up yesterday so that their alternative continues to work.
I don't want software on my system that is managed like that. It's the same reason I prefer Firefox over anything Chromium based.
Is it difficult to replace systemd?
Borderline impossible if you aren't using a distro designed with that in mind. Pretty much everything that isn't a program you directly start (e.g. sound system, desktop environment, bluetooth daemon etc.) either only provide a systemd unit to start them (which you'll have to manually translate into e.g. a shell script if you want it to work with your new init system) or is entirely reliant on systemd to function.
Your choices of distro if you don't want systemd are Debian, Void, Artix, and Gentoo, and afaik that's about it.
Replacing components of the systemd suite (e.g. using connman or networkmanager instead of systemd-networkd) isn't actually that bad as long as your DE has support for them, but replacing systemd itself is something you are building your entire system around.
IIRC Debian was one of the first distros implementing systemd.
Extremely. When things like your DE starts being dependent on systemd, you don't want to replace it.
I had posted about the monopoly that systemd has, and was down voted to oblivion.
What's behind this? I'm sure it's definitely not 100 % a single guy working on systemd, and tbh hating software because of the person who wrote it seems rather silly.
And what about those API changes you mentioned? Genuinely curious, I thought it always at least mentions them in release notes during betas.
It appears I was mistaken -- systemd does announce changes to internal interfaces on their mailing list although I can't be bothered to find out how much warning they give -- but I believe my point stands. Regardless of whether he gives adequate warning, he's still very much a dick about it ("gentoo users, this is your wakeup call") and he still seems to be doing the embrace-extend-extinguish thing. It used to be possible to run systemd-logind without systemd -- it no longer is -- and that mail I just linked is about making udev hard dependent as well.
Of course Poettering does not do all the development himself, but he does lead the project and it is his hubris and inability to accept that one size does not fit all that is responsible for the project being as hostile to outside implementations as it is.
Again, it's not the systemd project making alternatives to widely used applications and daemons (or even bringing development of those applications under the systemd umbrella) that I mind. It's Poettering's "my way or the highway" attitude and apparent belief that if your system is not either 0% systemd or 100% systemd then you do not deserve to have a system that works.
that was from 2014.
As a gentoo user, he can go eat some dicks, my system today runs just fine.
You can look up Lennart Poettering yourself, but he was also involved in PulseAudio which if you learned Linux in the 00's might give you pause, and has had some minor beef with Linus Torvalds before. His Wikipedia page has something like 5 paragraphs for controversies and 2 for his actual career.
I think focusing on him is a mistake, but I also understand people who were still mad about PulseAudio latching on to him if they also had issues with Systemd. This article goes into some of it, but I can't vouch fully for its accuracy. I will say that the dates of 2008 for PulseAudio's release and 2012ish for when it became actually fairly functional lines up pretty roughly with my own memory, and systemd was released in 2010 and adopted by Arch and Debian in early 2012, so PulseAudio was barely fixed before the same developer started pushing Systemd, and succeeded in getting the normally very conservative Debian developers on board.
https://linuxreviews.org/Lennart_Poettering#So_Much_Drama
If you actually want a reason, then most people experience faster boot up times using runit instead of Systemd. I haven't tried it yet though.
maybe if you ran systemd you wouldn't have to boot up so often that actual boot times mattered that much.
I'm curious if there's any quantitative evidence to show this.
I think it would be pretty easy to qualitatively test this
Is boot time that much of an issue besides for arbitrary competitive reasons? I haven’t tried any optimizations and boot time on my headless server is less than two seconds.
I maybe reboot my computer once a month. Why care?
Fun. You can dick around with your init scripts without having to worry about the right triggers or spawn classes or anything. Your system is hackable with bash. Systemd: here are a list of approved keywords, don't insert that there, why are using cron when you can use me?
oh, you haven't seen nothing yet. you know the lisp-y, hackable goodness you get in emacs? what if an init system was that hackable, and configured with a lisp? go give GNU shepherd a try.
I'm an avid GUIX user, is Shepherd already incorporated into it?
yes.
Systemd, as a replacement init system, is fine-ish. It's sometimes slow and when it decides a service is lost there's not much to do aside from killing the thing and restarting it.
Systemd, the full blown ecosystem that wants to replace literally everything by
systemd-thesamethingasbeforebutfromscratch
however, invites scepticism, especially when there are no particular flaws in the existing versions of things. DNS resolution, DHCP clients, NTP sync, etc. worked perfectly well."building codes."
It's like the rules systemd breaks except more noticeable when people have fucked around and now find out.
What rules?
Perhaps the most asinine reason I can give, I really like the color scheme and log design used in OpenRC, makes for a very nice init scroll of text
Easy:
Less Code in Kernelspace means safer OS
I want a Mikrokernel Linux. Maybe RedoxOS will be suitable.