this post was submitted on 29 Jun 2023
145 points (100.0% liked)
Linux
1259 readers
66 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Nah, it's fine. Boot times are considerably faster than sys.v in most cases, and it has a huge amount of functionality. Most people I work with have adopted it and much prefer it to the old init.d and sys.v systems.
People's problem with systemd (and there are fewer people strongly against it than before) seem to break down into two groups:
They were happy with sys.v and didn't like change. Some were unhappy with how distros adopted it. (The debian wars in particular were really quite vicious)
It does too much. systemd is modular, but even so does break one of the core linux tenets - "do one thing well". Despite the modularity, it's easy to see it as monolithic.
But regardless of feelings, systemd has achieved what it set out to do and is the defacto choice for the vast majority of distros, and they adopted it because it's better. Nobody really cares if a user tries to make a point by not using it any more, they're just isolating themselves. The battle was fought and systemd won it.
One of my biggest problems with critics of systemd is that a lot of the same people who make that second point also argue against wayland adoption when xorg does the exact same thing as systemd. It makes me feel like they're just grumpy stubborn old Linux nerds from the 90s who just hate anything that's not what they learned Linux with.
Which is sad, because honestly I think it's kind of not great that an unnecessarily massive project has gained such an overwhelming share of users when the vast majority of those users don't need or use most of what it does. Yeah, the init systems from before systemd sucked, but modern alternatives like runit or openrc work really well. Unfortunately they get poorly supported because everyone just assumes you have systemd. I don't like the lack of diversity. I think it's a problem that any init system "won".
Maybe
systemd
gets grouped withwayland
andxorg
with other init systems simply because of usability?I mean, I got used to the thought that what I prefer is less usable, because some pretentious UX designers say so, and we Unix nerds use inconvenient things because we are all perverts.
But when I read about industrial design and ergonomics, it seems that my preferences are consistent with what I read, and all those UX designers and managers should just be fired for incompetence and malice.
Back to wayland/xorg and runit/systemd (for example), same reason FreeBSD may seem easier to set up and use than an "advanced" Linux distribution - there's less confusion.
Xorg, or X11, "used to" do the "minimum necessary" for a remote display system... in the 80s. Graphics tech has changed A LOT in the last 40 years, with most of the stuff getting offloaded to GPUs, so the whole X11 protocol became more and more bloated as it kept getting new and optional features without dropping backwards compatibility.
The point against Wayland, was dropping support for remote displays, while kind of having an existential crysis for several years during which it didn't know what it wanted to become. Hopefully that's clear now.
OpenRC and runit are indeed working alternatives, but OpenRC is kind of a hack over init.rd, while runit relies a bit too much on storing all its status in the filesystem. Systemd has a cleaner approach and a more flexible service configuration.
I like it too. Very easy to work with and set up services as needed.
Arguably, Systemd does exactly that: orchestrate the parallel starting of services, and do it well.
The problem with init.d and sys.v is they were not designed for multi-core systems where multiple services can start at once, and had no concept of which service depended on which, other than a lineal "this before that". Over the years, they got extended with very dirty hacks and tons of support functions that were not consistent between distributions, and still barely functional.
Systemd cleaned all of that up, added parallel starting taking into account service dependencies, which meant adding an enhanced journaling system to pull status responses from multiple services at once, same for pulling device updates, and security and isolation configs.
It's really the minimum that can be done (well) for a parallel start system.
Thanks a lot. I truly hope this is the big picture and SystemD whiners are just a fringe minority lol
Is there somewhere I can read about the Debian wars? I am curious about that 🤓
Prepare for a rabbit hole... but this ought to get you started...
https://wiki.debian.org/Debate/initsystem
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727708
I also think that sounds intriguing.
Linux itself (i.e. the kernel) breaks the hell out of that so-called core tenet. Have you looked at
make menuconfig
at any point? There's everything but the kitchen sink in there.There's been a lot of work over the years to make the kernel far more modular than it used to be and that's why linux an run on extremely small resource footprints; because you can leave out the bits you don't want.
And? Most of the programs that come with systemd are optional; they have separate services that can be disabled if you don't want to use them.
Apples to oranges, and you can have a minimal kernel tailored to your needs.
Unless I'm mistaken, you can also not run most of the programs that systemd comes with, and just use the process supervisor. You'd be missing out on some cool functionality, though, like being able to query system logs in a way that vaguely resembles a database.
They're the main reasons, yes, but there are plenty others .