this post was submitted on 12 Nov 2023
674 points (94.6% liked)
linuxmemes
21428 readers
1059 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
Can someone persuade me to not use systemd without using the word 'bloat?'
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
Here is an alternative Piped link(s):
https://piped.video/thOifuHs6eY
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.
I'm not sure if this counts as reasoning, more like they just feed each other, with all starting from the original lack of documentation
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.
My question was just curiosity. If there's a good reason to switch to something else, I'd like to know, you know?
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.
Ah ok. Is that different for runit or the other typical alternatives?
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.
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.
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.
There is none. It's all conjecture or circumstantial.
I think it would be pretty easy to qualitatively test this
I think it would not actually be easy to test this. The massive combinations of hardware and software configurations in use out in the world make it nearly impossible to conclusively say one way or the other.
For instance consider the hypothetical of a service with a bug that increases its startup in certain circumstances. If Systemd triggered this bug and OpenRC didn't because of some default setting in each, perhaps a timeout setting, would you say OpenRC is conclusively better at start up time? Not really, they just got lucky that their default bypassed someone elses bug. Just off the top of my head other things that would probably cause hell in comparisons are disk access speeds, RAM bottlenecks, network load, CPU and GPU temp and performance etc.
You can perhaps test for specific use cases and sets of services, but I think this is more useful for improving each init system than it is as a comparison between them.
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.From reading all of these comments, I think I have to agree. It seems like systemd as "the tool" is ok (I know there's some argument there too), but systemd as the project and ecosystem seems to go a bit against the soul of GNU and Unix.
Easy:
Less Code in Kernelspace means safer OS
I want a Mikrokernel Linux. Maybe RedoxOS will be suitable.
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
That's a great reason! Why use a computer at all if you can't look cool while you use it?
"building codes."
It's like the rules systemd breaks except more noticeable when people have fucked around and now find out.
What rules?