Of all the people who have incredibly strong opinions about not-so-incredibly important things, the virulently anti-systemd crowd are among the ones that baffle me the most.
There are many legitimate complaints. Bundling a bunch of services into a single binary goes completely against Unix philosophy. Systemd changing from text to binary logs is my pet peeve.
Copying how Windows does things isn’t necessarily the best.
I was annoyed with binary logs until I found cases where compressing logs was literally 10x or more improvement, like if you ran into a bug that just repeatedly spit the same log.
And I know logrotate compresses text logs too but if you’re going to compress logs into tar.gz, might as well just make it binary by default and have a nice interface (journald) on top
You know it’s not a single binary, right ? Systemd is a bunch of different, mostly single usage, mostly optional, binaries. As far as Unix philosophy goes, Systemd is definitely following the principles, which is not the case for the Kernel for instance.
As for the binary logs, I used to hate it, but then, not having to manually parse logs for filtering is really nice.
I do have my issues with Systemd, but it not following the Unix philosophy is not one of them.
If your favorite thing is being ruined and you can’t stop it, I can understand frustration being displayed as anger.
It’s the same when Windows users get angry at things like OneDrive. It’s forced on them and they don’t want to have to work around removing it like people having to work around how Gnome is integrated into systemd.
If your favorite thing is being ruined and you can’t stop it, I can understand frustration being displayed as anger.
That’s the joy of open source though: you can stop it. You are free to use another init system, fork projects, etc. With Windows, you can’t do any of that. Since it’s closed source, workarounds that may be temporary are all you can do.
That’s the joy of open source though: you can stop it.
Not really. Unless you are prepared to devote your life to changing the source code to what you want, you have to accept it. And because you forked you are no longer downstream and will have to spend the rest of your life keeping up with patches.
It’s not much different than Windows. You could write a OneDrive uninstaller but you will have to spend the rest of your life with patches every time MS updates and breaks your uninstaller.
I mean we are literally on a couple of open source solutions communicating using an open protocol probably using some sort of open OS.
https://nosystemd.org/ is a thing. I dont have particularly strong opinions on the matter.
You don’t need to do it alone. In fact, people can come by, fix some things, then go about life. Or donate money instead of resources. If you have used lemmy/piefed/mastodon/peertube in the past, theres a tiny bit of my code in there that makes things just a tiny bit better. Thats not a brag or anything, its just that multiple people can contribute.
But I hear the frustrations. There is a certain mindset you have to have, hopeful you and others can build something…or with enough hatred to build out of spite. Sometimes thats hard to do with everything else in life. Sometimes the best thing to do is to accept and move on. Or go looking for new solutions without maintenance.
If you like a distro and they switch to systemd, there’s not a lot you can do if you aren’t up to forking the whole distro. I feel like too many people in open source forget that most people have lives outside of Linux.
That’s the joy of open source though: you can stop it. You are free to use another init system, fork projects
That and a big company looking to manufacture a perceived advantage by aggreasively pushing their shit into the mainstream - good fit to be taken over by IBM - who can bankroll the slapdash dev and bully ISVs, and you’re set.
your favorite thing is being ruined and you can’t stop it,
Hardly a ‘favourite thing’; it’s like making a water slide out of a river : Wantonly wrecking something simple, effective and usable for this mishmash isn’t ruining something sacred as much as it is destroying something for no reason to dramatically create something lesser the world didn’t need. Except with more hype, payola, ageism, strong-arm adoption and cult worship.
Richard P. Gabriel, in his essay “The Rise of Worse-is-Better,” expounds on this theme (see Appendix A). His thesis is that the Unix design philosophy requires that all design decisions err on the side of implementation simplicity, and not on the side of correctness, consistency, or completeness. He calls this the “Worse Is Better” philosophy and shows how it yields programs that are technically inferior to programs designed where correctness and consistency are paramount, but that are evolutionarily superior because they port more easily. Just like a virus.
The highest achievement of the Unix-aesthetic is to have a command that does precisely one function, and does it well (…) This philosophy, in the hands of amateurs, leads to inexplicably mind-numbing botches like the existence of two programs, “head” and “tail,” which print the first part or the last part of a file, depending. Even though their operations are duals of one another, “head” and “tail” are different programs, written by different authors, and take different options!
That head/tail thing is kind of a goofy argument. For one thing they aren’t duals; tail is naturally more complex because the end of a file often changes and the application can optionally keep showing you the new output. Also, the fact that they’re separate applications in the first place is arguably better than the a one-application approach, which would always require a command line switch to select between outputting the start or end of a file. And finally, while I guess this could vary between implementations of head and tail, mine has identical switches for all the common options.
I initially agreed with your take there but I actually think they’re a great argument for their point. head and tail are the exact same abstraction. Their implementations will be quite different, but they both serve “provided this data, give me these lines”. Consider instead that these are simply operations on arrays and actually they map perfectly to Python slices: data[:10] and data[-10:]. This abstraction mapping also shows that, imo, the tool should provide data[n:m] and it would still be entirely consistent with the Unix philosophy. In fact, this tool exists in the Unix toolkit: sed -n n,mp. Three tools then are currently required for the simple concept of “slice lines”. I also think it’s a bit of a mess. You could replace head with sed fairly easily: sed -n '1,10p' but not tail (it is possible, but quite slow and very opaque)
As an aside I actually found this quite frustrating myself because I don’t like reaching for sed in the n:m case (I always forget and end up piping head to tail) and ended up writing my own tool for essentially this style of slicing input, also replacing probably my least favorite use of my least favorite Unix tool, dd, to slice arbitrary byte sequences. The tool doesn’t feel overloaded and I use it quite often.
(I’m sure many people have written this same tool. There is probably a widely known open source option that I’ve just never come across)
They could have been two commands that call a single parent command with different options. For example, imagine if cat had an option -N to restrict the number of lines that was printed, and also an option -t to start from the end. head would just proxy to cat -N and tail would proxy to cat -N -t. Combining the three into a single implementation reduces total LoC and opportunity for bugs. Also reduces total maintenance burden.
I believe busybox is like this actually - a ton of Unix commands in a single package. It’s used by Alpine Linux, a tiny and performance linux distro commonly used by docker containers.
Some quick research says that it is indeed a re-implementation. The first line of the wikipedia, says:
BusyBox is an implementation of many Unix commands in a single executable file.
You can download the source code yourself to verify. And if you’ve actually used Alpine Linux before you would have also noticed that the commands provided by busybox have only a subset of the options provided by their GNU coreutils counterparts.
Please do your research before so confidently correcting other people.
The way they do it is fundamentally different. Head just reads until number of newlines is the target number. Tail has to first read the entire file and keep a buffer of the file and/or offsets for each line ending to determine what the last 10 (or so) lines are.
This idiot (Gabriel) probably thinks exclusively in the real world paper line analog.
I also just looked at each program’s command line options and they’re identical. Less things only Tail can do (because they’re fundamentally different operations)
This idiot (Gabriel) probably thinks exclusively in the real world paper line analog.
Typical of Internet discourse to just immediately brand someone you disagree with an idiot… That “idiot” is one of the designers of common lisp, among other things. You’re allowed to disagree with a smart person too you know
There’s also a few cases of feature and scope creep, including the infamous systemd-resolved.
Systemd, your job is to launch services, manage logs, and do timers and relaunches on a service crash. DNS is out of scope, leave that to existing services.
You’ve misunderstood something.
systemd-resolved is one of the services that uses systemd’s service management system
You’re saying “don’t use this service management system to manage your services”
I agree, though my biggest headache has been with systemd handling mounts. You have to modify a ton of units to add After and Required to make sure the NFS shares you have in fstab get mounted before starting services that depend on them. And then if the package maintainer updates their unit files, all your changes disappear!
Such a huge headache compared to the classic init.d that mounted everything very early – with just the occasional “boot delayed a couple seconds because your share was offline” or such.
The other day on a thread here about “people who use other init systems, why?” and i wrote about my experience with systemd and git downvoted for mysterious reasons. Other people that did the same as me also got their downvote sixpacks. And now they want to make it seem like it’s just the people that hate systemd the annoying ones…
Hey, just wanted to let you know that I downvoted your comment. Mainly because I think it’s funny when people can’t come up with compelling arguments and complain about being downvoted instead, but also because I’m part of the conspiracy making sure that people vocally complaining about systemd seem really annoying and wrong.
Even systems that use text logs, compress logs using logrotate and you have to uncompress before you can read them. Also since the compressed tar.gz logs are a bunch of separate files, if you don’t have an exact date of what you’re looking for, you have to uncompress and search through all of them. I much prefer just using journalctl
But then you aren’t just using a text editor anymore. If you’re willing to use programs like zless and zgrep, then you can just as easily use journalctl. And I’ve never lost a logfile before, over many years, so not to discredit your experience but at least in my experience journald has been an upgrade
systemd devs successfully rage baited you and a bunch of others. It’s time to let it go.
But if you don’t want to, let me ask, how do you think a data field with no connection to any access control subsystem, is going to prevent anyone from logging in?
It’s popular to hate systemd. Just as it’s popular to hate PHP. It makes people feel like they’re part of an “elite group” that are above these things. Most of the time, people can’t even explain why they hate it. Just ask someone why he hates systemd and in 95% of all cases, you won’t get a straight answer, except, of course: “It ViOlAtEs LiNuX pHiLoSoPhY” yes timmy and how does that affect you while browsing and playing games, because that’s all you do on your PC.
I’m not saying that there are no reasons to dislike systemd for some people. There might be a handful of them who genuinely dislike it and have justified reasons for it. However, an overwhelming majority of the people that hate it don’t even have a fucking clue what it is, let alone why it’s dislikeable, they just read on twitter or reddit that it sucks. And that’s it. It’s a bit like a big streamer saying: “Game XYZ is shit” and a majority of that streamers following will think its shit.
As someone who designs systems as part of his job, “it violates Linux philosophy” is a perfectly valid reason to hate something as critical and low level as an init system.
I think “hate” is a strong word, mind, but following consistent design patterns and constraining scope matters. The problem is that it’s one of those things that doesn’t tend to matter until shit hits the fan.
The scope creep exponentially raises the efforts needed to properly test, troubleshoot, secure, and just generally work with the project code. The unique design creates rough edges for integrations with other pre-existing systems and tools, while also raising the effort needed for troubleshooting when something goes wrong.
There’s also the whole “Chesterton’s Fence” aspect to a lot of it, where the project runner’s overall attitude has been dismissive of existing conventions and separation of functionality.
There’s a lot of perfectly valid reasons to dislike it. That said, I think full on hate is extreme for an aspect of the overall Linux “system” and “user experience” that most users never interact with. Like having an opinion on the order your BIOS handles things in.
Which part of the “Linux philosophy” does systemd “violate”.
The scope creep exponentially raises the efforts needed to properly test, troubleshoot, secure, and just generally work with the project code.
I keep seeing these words, “scope creep”, in this thread, and I don’t think most people understand what they mean.
The scope of systemd is an init and service manager, and any basic service required for a minimal, coherent system to work. If you think that it goes too far, then we should be talking about the Linux kernel and all the stuff it has that could run on userland and doesn’t, or coreutils, which essentially is the shell equivalent to systemd without the integration.
Sure, and that’s just as valid points against them as well. For my part at least, none of this is meant as some sort of death knell, or direct damning evidence that some software is some sort of terrible piece of garbage.
I just refuse to believe that someone would literally be entirely incapable of comprehending any of the reasons people dislike systems to only be capable of engaging with the criticisms in bad faith.
That only has impact on the security risk surface exposed for your own install and for troubleshooting on your own machine. The maintainers and other coders on the project still have far more space, complexity, and features to cover.
It’s not a death knell by any means, but still a valid cause for concern.
Predictable, more-or-less identical systemd, with its stance on limiting eveything and being secure by default is more of a security risk than old-timey inits that were different for every distribution with init scripts made by different people with different abilities and customizations?
When I started my ops journey systemd wasn’t there, and it was far harder to make compatible software. Also if you are designing a system how exactly general use systems come into picture at all?
By every reasonable measure systemd is a win, it started to appear even in automotive industry, which is regulated as hell, by 2022 (when I left).
Of all the people who have incredibly strong opinions about not-so-incredibly important things, the virulently anti-systemd crowd are among the ones that baffle me the most.
There are many legitimate complaints. Bundling a bunch of services into a single binary goes completely against Unix philosophy. Systemd changing from text to binary logs is my pet peeve.
Copying how Windows does things isn’t necessarily the best.
I was annoyed with binary logs until I found cases where compressing logs was literally 10x or more improvement, like if you ran into a bug that just repeatedly spit the same log.
And I know logrotate compresses text logs too but if you’re going to compress logs into tar.gz, might as well just make it binary by default and have a nice interface (journald) on top
You know it’s not a single binary, right ? Systemd is a bunch of different, mostly single usage, mostly optional, binaries. As far as Unix philosophy goes, Systemd is definitely following the principles, which is not the case for the Kernel for instance.
As for the binary logs, I used to hate it, but then, not having to manually parse logs for filtering is really nice.
I do have my issues with Systemd, but it not following the Unix philosophy is not one of them.
It’s not people disliking it that makes no sense to me; everyone has their opinions.
I just can’t imagine having the level of anger displayed by some of the most vocal of the anti-systemd crowd.
If your favorite thing is being ruined and you can’t stop it, I can understand frustration being displayed as anger.
It’s the same when Windows users get angry at things like OneDrive. It’s forced on them and they don’t want to have to work around removing it like people having to work around how Gnome is integrated into systemd.
How is GNOME integrated with systemd?
https://forums.freebsd.org/threads/gnome-to-have-stronger-dependency-on-systemd.98260/
That’s the joy of open source though: you can stop it. You are free to use another init system, fork projects, etc. With Windows, you can’t do any of that. Since it’s closed source, workarounds that may be temporary are all you can do.
Not really. Unless you are prepared to devote your life to changing the source code to what you want, you have to accept it. And because you forked you are no longer downstream and will have to spend the rest of your life keeping up with patches.
It’s not much different than Windows. You could write a OneDrive uninstaller but you will have to spend the rest of your life with patches every time MS updates and breaks your uninstaller.
I mean we are literally on a couple of open source solutions communicating using an open protocol probably using some sort of open OS.
https://nosystemd.org/ is a thing. I dont have particularly strong opinions on the matter.
You don’t need to do it alone. In fact, people can come by, fix some things, then go about life. Or donate money instead of resources. If you have used lemmy/piefed/mastodon/peertube in the past, theres a tiny bit of my code in there that makes things just a tiny bit better. Thats not a brag or anything, its just that multiple people can contribute.
But I hear the frustrations. There is a certain mindset you have to have, hopeful you and others can build something…or with enough hatred to build out of spite. Sometimes thats hard to do with everything else in life. Sometimes the best thing to do is to accept and move on. Or go looking for new solutions without maintenance.
… and yet not a single one of you have ever donated to cURL
I mean ive donated time to curl. And I did a one time one like years and years ago and got some stickers.
You doing ok?
If you like a distro and they switch to systemd, there’s not a lot you can do if you aren’t up to forking the whole distro. I feel like too many people in open source forget that most people have lives outside of Linux.
That and a big company looking to manufacture a perceived advantage by aggreasively pushing their shit into the mainstream - good fit to be taken over by IBM - who can bankroll the slapdash dev and bully ISVs, and you’re set.
Hardly a ‘favourite thing’; it’s like making a water slide out of a river : Wantonly wrecking something simple, effective and usable for this mishmash isn’t ruining something sacred as much as it is destroying something for no reason to dramatically create something lesser the world didn’t need. Except with more hype, payola, ageism, strong-arm adoption and cult worship.
From The Unix Hater’s Handbook
(I like Linux, but it’s not all sunshine and rainbows)
That head/tail thing is kind of a goofy argument. For one thing they aren’t duals;
tailis naturally more complex because the end of a file often changes and the application can optionally keep showing you the new output. Also, the fact that they’re separate applications in the first place is arguably better than the a one-application approach, which would always require a command line switch to select between outputting the start or end of a file. And finally, while I guess this could vary between implementations ofheadandtail, mine has identical switches for all the common options.I initially agreed with your take there but I actually think they’re a great argument for their point.
headandtailare the exact same abstraction. Their implementations will be quite different, but they both serve “provided this data, give me these lines”. Consider instead that these are simply operations on arrays and actually they map perfectly to Python slices:data[:10]anddata[-10:]. This abstraction mapping also shows that, imo, the tool should providedata[n:m]and it would still be entirely consistent with the Unix philosophy. In fact, this tool exists in the Unix toolkit:sed -n n,mp. Three tools then are currently required for the simple concept of “slice lines”. I also think it’s a bit of a mess. You could replaceheadwithsedfairly easily:sed -n '1,10p'but nottail(it is possible, but quite slow and very opaque)As an aside I actually found this quite frustrating myself because I don’t like reaching for
sedin then:mcase (I always forget and end up pipingheadtotail) and ended up writing my own tool for essentially this style of slicing input, also replacing probably my least favorite use of my least favorite Unix tool,dd, to slice arbitrary byte sequences. The tool doesn’t feel overloaded and I use it quite often.(I’m sure many people have written this same tool. There is probably a widely known open source option that I’ve just never come across)
They could have been two commands that call a single parent command with different options. For example, imagine if
cathad an option-Nto restrict the number of lines that was printed, and also an option-tto start from the end.headwould just proxy tocat -Nand tail would proxy tocat -N -t. Combining the three into a single implementation reduces total LoC and opportunity for bugs. Also reduces total maintenance burden.I believe
busyboxis like this actually - a ton of Unix commands in a single package. It’s used by Alpine Linux, a tiny and performance linux distro commonly used by docker containers.Busybox is literally just a bundle. That’s its whole purpose. It doesn’t reimplement anything.
Some quick research says that it is indeed a re-implementation. The first line of the wikipedia, says:
You can download the source code yourself to verify. And if you’ve actually used Alpine Linux before you would have also noticed that the commands provided by busybox have only a subset of the options provided by their GNU coreutils counterparts.
Please do your research before so confidently correcting other people.
The head and tail programs also do completely different things. What differences in options do they have?
Really completely different? Do they not print first / last lines of text from a file into the terminal?
The way they do it is fundamentally different. Head just reads until number of newlines is the target number. Tail has to first read the entire file and keep a buffer of the file and/or offsets for each line ending to determine what the last 10 (or so) lines are.
This idiot (Gabriel) probably thinks exclusively in the real world paper line analog.
I also just looked at each program’s command line options and they’re identical. Less things only Tail can do (because they’re fundamentally different operations)
Typical of Internet discourse to just immediately brand someone you disagree with an idiot… That “idiot” is one of the designers of common lisp, among other things. You’re allowed to disagree with a smart person too you know
OK. Designers of programming languages can be idiots.
Lisp is a bad language IMO. Way too mathy. Nobody programs like that anymore for a reason.
Programming language is a tool. Do you think there’re no more tasks left where “mathy” programming language would be preferable?
“This program sucks because it doesn’t come with the world’s most confusing GUI and doesn’t do a trillion things”
If you ask this person what “technically inferior” actually means you’d probably get a different answer every day.
But that’s not what either of the guys complained about
Yea what a hot take that was, critiquing words that were never there and then calling the person an idiot.
GUI certainly has its place.
Yes and so do simple CLI tools that work. Head and Tail are about the worst examples because they work very well and also do very different things.
There’s also a few cases of feature and scope creep, including the infamous
systemd-resolved.Systemd, your job is to launch services, manage logs, and do timers and relaunches on a service crash. DNS is out of scope, leave that to existing services.
resolved is entirely optional and disabled by default, I use it on case of non-mobile devices but leave it on laptops etc.
DNS resolution isn’t something exotic, it makes sense for systemd to implement it in a simple optional daemon
You’ve misunderstood something.
systemd-resolved is one of the services that uses systemd’s service management system
You’re saying “don’t use this service management system to manage your services”
I may have written that in a confusing way. I’m saying systemd’s job is service management. Systemd-resolved is an unnecessary bit of scope creep.
systemd-resolved is a service. It’s not scope-creep. It’s its own thing built in the systemd framework.
I agree, though my biggest headache has been with systemd handling mounts. You have to modify a ton of units to add
AfterandRequiredto make sure the NFS shares you have in fstab get mounted before starting services that depend on them. And then if the package maintainer updates their unit files, all your changes disappear!Such a huge headache compared to the classic init.d that mounted everything very early – with just the occasional “boot delayed a couple seconds because your share was offline” or such.
You’re not supposed to modify shipped unit files, that’s why systemd supports drop in snippets
A single binary? What?
Fast searchable compressed files is a fantastic idea.
The other day on a thread here about “people who use other init systems, why?” and i wrote about my experience with systemd and git downvoted for mysterious reasons. Other people that did the same as me also got their downvote sixpacks. And now they want to make it seem like it’s just the people that hate systemd the annoying ones…
Lemmy is just highly opinionated, poor social skills, and often closed minded.
There are too many people who use downvote to disagree with cogent and well written points.
I try to only downvote if something is obviously trolling, in bad taste, or wildly stupid.
Downvoting is a legitimate tool of expressing your disagreement.
Hey, just wanted to let you know that I downvoted your comment. Mainly because I think it’s funny when people can’t come up with compelling arguments and complain about being downvoted instead, but also because I’m part of the conspiracy making sure that people vocally complaining about systemd seem really annoying and wrong.
It attracts a lot of silent disagreement that’s for sure.
By far my most controversial post was negative about systemd, while posts on Palestine, anarchy, etc. received no negative attention at all.
Well, perhaps Palestine is not controversial at all?
What systemd binary is the worst offender, in your opinion?
Logind. Right after udev.
Not sure what’s annoying about logind, but udev was introduced eight years before systemd was a thing.
It’s not the binary. It’s that the logs it writes are in binary so can’t be read without a program.
Even systems that use text logs, compress logs using logrotate and you have to uncompress before you can read them. Also since the compressed tar.gz logs are a bunch of separate files, if you don’t have an exact date of what you’re looking for, you have to uncompress and search through all of them. I much prefer just using journalctl
I mean… zless and zgrep have been a thing since forever ago. And some distros ship with lessopen(?) preinstalled, so it’s seemless.
There are only so many times I’m willing to put up with lost logfile due to a crash. Logrotate wouldn’t do this.
You can read systemd logs with
stringsprogram (part of binutils). Even if the file itself corrupted due to a crash.But then you aren’t just using a text editor anymore. If you’re willing to use programs like zless and zgrep, then you can just as easily use journalctl. And I’ve never lost a logfile before, over many years, so not to discredit your experience but at least in my experience journald has been an upgrade
Why would I ever use a text editor? I think our approaches to viewing logs are fundamentally different.
Well the original comment I responded to said
Of course, a text editor is also a “program”, but I assumed they were saying they preferred plain text logs.
If you aren’t agreeing with them then you need to state your position more clearly when you hop in.
You can’t read a text file without a program either.
be nice to him, he’s baffled
The real problem with systemd is figuring out what’s is or isn’t part of systemd…
That’s easy: If it’s a service reasonably expected to be present on most desktop systems, it’s part of systemd or will eventually be.
And if it’s not expected, it also eventually will be part of systemd.
I hear they will work on a display server next called waylanD or something /s
They don’t really target desktop systems.
Why do so many people think it’s a good thing??
Because it’s a good project, extremely well documented, which tries to make administering linux system easy and predictable.
I don’t particularly hate systemd, but when they said they are considering incorporating age verification stuff I switched to void.
Good news is that systemd is not incorporating age verification just like they are not incorporating name verification.
Both name and birth date are just userdb fields with no verification at all.
There are complicits.
Just as complicit as for name verification. 🤷♀️
In the same sense a database is complicit.
No. A database doesn’t have these specific fields by default.
Neither does systemd. They are optional.
LDAP has had a birth date field for like 20 years now. Is it “complicit” as well?
Fields are optional, but developers of systemd consciously implemented those fields.
And in a DB that’s not the case.
This field appeared in LDAP for different reasons, than age control.
systemd devs successfully rage baited you and a bunch of others. It’s time to let it go.
But if you don’t want to, let me ask, how do you think a data field with no connection to any access control subsystem, is going to prevent anyone from logging in?
Tell me you need to learn more about scope creep, Unix and system design using different words.
It’s popular to hate systemd. Just as it’s popular to hate PHP. It makes people feel like they’re part of an “elite group” that are above these things. Most of the time, people can’t even explain why they hate it. Just ask someone why he hates systemd and in 95% of all cases, you won’t get a straight answer, except, of course: “It ViOlAtEs LiNuX pHiLoSoPhY” yes timmy and how does that affect you while browsing and playing games, because that’s all you do on your PC.
I’m not saying that there are no reasons to dislike systemd for some people. There might be a handful of them who genuinely dislike it and have justified reasons for it. However, an overwhelming majority of the people that hate it don’t even have a fucking clue what it is, let alone why it’s dislikeable, they just read on twitter or reddit that it sucks. And that’s it. It’s a bit like a big streamer saying: “Game XYZ is shit” and a majority of that streamers following will think its shit.
As someone who designs systems as part of his job, “it violates Linux philosophy” is a perfectly valid reason to hate something as critical and low level as an init system.
I think “hate” is a strong word, mind, but following consistent design patterns and constraining scope matters. The problem is that it’s one of those things that doesn’t tend to matter until shit hits the fan.
The scope creep exponentially raises the efforts needed to properly test, troubleshoot, secure, and just generally work with the project code. The unique design creates rough edges for integrations with other pre-existing systems and tools, while also raising the effort needed for troubleshooting when something goes wrong.
There’s also the whole “Chesterton’s Fence” aspect to a lot of it, where the project runner’s overall attitude has been dismissive of existing conventions and separation of functionality.
There’s a lot of perfectly valid reasons to dislike it. That said, I think full on hate is extreme for an aspect of the overall Linux “system” and “user experience” that most users never interact with. Like having an opinion on the order your BIOS handles things in.
Which part of the “Linux philosophy” does systemd “violate”.
I keep seeing these words, “scope creep”, in this thread, and I don’t think most people understand what they mean.
The scope of systemd is an init and service manager, and any basic service required for a minimal, coherent system to work. If you think that it goes too far, then we should be talking about the Linux kernel and all the stuff it has that could run on userland and doesn’t, or coreutils, which essentially is the shell equivalent to systemd without the integration.
Which could apply to GNOME or KDE given they do more than just desktop environments.
Sure, and that’s just as valid points against them as well. For my part at least, none of this is meant as some sort of death knell, or direct damning evidence that some software is some sort of terrible piece of garbage.
I just refuse to believe that someone would literally be entirely incapable of comprehending any of the reasons people dislike systems to only be capable of engaging with the criticisms in bad faith.
You are allowed to build minimal systemd, which didn’t change that much in many years, no scope creep, consistent, simple.
That only has impact on the security risk surface exposed for your own install and for troubleshooting on your own machine. The maintainers and other coders on the project still have far more space, complexity, and features to cover.
It’s not a death knell by any means, but still a valid cause for concern.
Predictable, more-or-less identical systemd, with its stance on limiting eveything and being secure by default is more of a security risk than old-timey inits that were different for every distribution with init scripts made by different people with different abilities and customizations?
When I started my ops journey systemd wasn’t there, and it was far harder to make compatible software. Also if you are designing a system how exactly general use systems come into picture at all?
By every reasonable measure systemd is a win, it started to appear even in automotive industry, which is regulated as hell, by 2022 (when I left).