50 comments

[ 14.9 ms ] story [ 1320 ms ] thread
This is just the homepage. Bah. I was hopeful this might be more! I would genuinely love for some posting on systemd that can actually talk to this.

There's posts on using systemd for this or that, which are fine, but it feels like the pro-systemd camp doesn't find or make opportunities to rally, to express ths vision, where-as the anti-vision (as ever) sells itself, is a magnet that makes common party out of all dissent.

- https://systemd.io/ is full of documentation.-
And it's crap. It still lists blog posts from 2012.

There is NO good overall diagram of all the moving pieces in systemd.

Well, yes. Why would there be? It's a piece of software designed to turn all distros into Red Hat, and then sell consulting services to manage the untameable complexity. Legibility, composability, these would defeat the purpose.
Every now and then there's a blog post or presentation that combines several systemd features to show how the result is a better overall system. The All Systems Go conference https://all-systems-go.io/ is a good place to learn about systemd.
> pro-systemd camp doesn't find or make opportunities to rally

I've never really seen this sort of parading in open source software. Do you have an example? I see it as competent people using things that they want to use, with the "better" being preferred, for whatever reasons (including momentum).

Having everyone have to discover the pro/con's of every system themselves, in the dark, with no social media / blogging around it, seems like a very strange position to me.

Technology should be highly social. Especially open source! It in unique-for-technology ways gives us something real to be social over. We can share and unfold and unpack.

This isn't entirely what you are talking about but Architectures of Open Source is still one of the best "what is this" explorations of the tech world out there. I think good advocacy has a lot of these elements (if not so total) in it. In ways that can show the bigger pictures, which AOSA at it's best does! https://aosabook.org/en/

You're arguing a point I never made. Experience can be shared without the intent to manipulate/persuade towards a common cause, which is the definition of "rally". A blog post/social media about experience of use is NOT a rally, and a rally is NOT required, and in fact makes a post suspect, because that's means the person is probably hiding negative aspects, with their intent to promote, rather than just showing reality.
You're taking a slant on the rally, to turn a possible downside into something greviously fatal. That's not intrinsic in what I was talking about. We can have clear identifying gathering points, touchstones, blog posts, etc that call the cause without having to hide and conceal. This argument you are making is extremely uncharitable, and assumes bad motives from the start.
Given that the overwhelming majority of Linux distros have moved to systemd, it's not clear why the pro-systemd camp would need to be finding or making opportunities to rally.

They're spending their time build and improving systemd's set of building blocks.

The drift, the gap between the advanced guard of seasoned enjoyers and the rest of the world that doesn't know what their missing feels like material that deserves coverage to me?

Just stay heads down and keep doing the world, don't share, dont socialize has been the plan so far in a lot of open source. And I think the outcomes would be better if we tried methodologies other than this. Freaking weird that this is just accepted.

Do they need to? As an outsider, my view is that they already "won".
Is your Civilization victory a Science, Military or Cultural one? I think that depends on how and if the technology is socialized and spoken of.

If people feel like it's an oppressor, something they don't understand that has rolled in, and now defacto is (is shipped in every distribution of note): it feels like a Military victory. Over them. It sparks no joy.

Appealing to the nerds can be a strong science victory. Preach all your amazingness. I personally can go on and on and on about how awesome it is that systemd offers workload isolation, least privileges, cgroups for juggling priorities. I love that mdns kind of just works for me, and integrates well with my resolver. There's little science-y reasons.

But there lurk Two Cultures problems everywhere. And figuring out how to bridge the technical to the world, how to sing praises, how to get the world to be interested in relating to, engaging in, giving it the ability to share in some of your wonder and awe: that is what turns Science Victory into a Cultural Victory. And it's what good worthy interesting projects deserve. And it should be an act we do, and help build. We should make appeals to the world, try to get them interested in relating to the upsides, and the downsides to, to give them something worth engaging. I feel like the negative creeps have absolutely slammed their way to Two Cultures wins, to appealing to the world with negativity, and I think some more deliberate, caring, thoughtful work and blogging would make a huge difference in building cultural momentum, in sealing in what ought be a Cultural Victory. That those who know systemd reasonably well largley agree with already, but that many people do not see or understand.

(Am I missing other victory types?)

> I personally can go on and on and on about how awesome it is that systemd offers workload isolation, least privileges, cgroups for juggling priorities. I love that mdns kind of just works for me, and integrates well with my resolver.

So.... mDNS works out of the box on any glibc system with libnss-mdns and a running avahi-daemon - not "kind of" works, just Works. cgroups are a kernel feature that is quite straightforward to use without systemd. "Workload isolation" and "least privileges" are vague but seem to me to just be describing cgroups again, or just general permissions. I realize that this was an off the cuff remark, not a blog post in defense of systemd, but you must know that every time a systemd skeptic reads a list like this, full of "features" that work fine without it, the impression is only further reinforced that what systemd really provides is marketing.

That you don't know what I'm talking about when I say least least privileges isn't stunning. Because almost no one took any precautions with how processes ran and only some people realize you should! Even though systemd makes it so so easy, and integrates many many different mechanisms and systems for locking down what procesess can do and what they have access to. SuSe has an ok page, but this is barely the tip of the iceberg they are covering. There are temporary users, sandboxed filesystems, all sorts of stuff more! https://documentation.suse.com/smart/security/html/systemd-s...

"cgroups are a kernel feature that is quite straightforward to use without systemd". Oh, you've used cgconfigparser? You run your services via cgexec? You found cgrulesengd to be pleasant and productionally operizationable? Or did you have a bash /etc/init.d/set-my-cgroups with 30 hardcoded lines of things twiddling /sys/fs/cgroups files? C'mon my man. No one did either of these! Or at least very very few! Today Cgroups work incredibly well, out of the box, with no thought, and have a very sensible coherent pattern of use, that benefit all Linux users. And which is incredibly tweakable. Since systemd. Because of systemd. You're not being remotely intellectually honest & your suggestion that this was "straightforward" maybe comes from you being a master sysop with decades of experience for who this came second nature, and if that's so I think you have no idea how most code ran. But I think you are just blowing smoke, making up nonsense.

I too ran years of libnss-mdns and avahi-daemon (another Lennart project btw). It worked for a decade, was fine. I'm glad systemd-networkd (advertising) and systemd-resolved (finding) just integrate these concerns for me, alongside everything else they just integrate amazingly, a drop-in file like everything else if I want. It's easier to scope & keep on top of which networks I do what mdns on. This is the weakest win of these three but it's still to me a sigificant win.

To reframe: I realize that this was an off the cuff take-down, not a blog post in aggression of systemd, but you must know that every time a systemd hater tries to throw salt like this, full of "do we really win" that no one ever did before, the impression is only further reinforced that what the haters really got is nothing.

Systemd composes incredibly well, with the way etc drop in files work. With the consistency of how it has different unit types that work together. With how units can BindsTo= and have After= and other patterns. There's a pretty amazing toolkit here that relates multiple parts together to form a very cohesive explorable and regular system, that many people know and understand. It helps you make really good use of all sorts of kernel capabilities like cgroups, like their namespaces, to help you juggle/constrain annoying system-hogs, to maintain better responsiveness, to lock down access to daemons. This is still just the tip, of a mono-repo of many projects all of which have common operational patterns and nice tooling, almost all (except to much hew & cry & perhaps rightfully so: journald) of which be disabled. "Just marketing" is a statement professing profound disconnect & ignorance.

systemd makes it so so easy, and integrates many many different mechanisms and systems for locking down what procesess can do and what they have access to.
As someone that tried systemd init early on, without bias (I have no emotional attachment to how things start on my computer), it was incredibly clear that they would win.
> the pro-systemd camp doesn't find or make opportunities to rally

Why would they? Their leader was always "I know better than you, now f off". This kind of approach doesn't need any rallying or evangelism at all.

[delayed]
Yes a more accurate headline - systemd would like to be perceived as a suite of basic building blocks
(comment deleted)
[delayed]
But that’s precisely what it allows you to do: plug a socket unit into a service unit, connect a timer unit, then another service as a dependency… and that’s just for the init management. Systemd might not fit your personal stylistic preferences, but most of all it’s consistent.
Yeah, like what Upstart did! Why did we switch away from that, again?
Didn't have timers for one, or the same level of support around sockets.
Because firstly, it had a broken architecture.

https://bugs.launchpad.net/upstart/+bug/406397/comments/21

https://bugs.launchpad.net/upstart/+bug/447654/comments/6

Secondly, Canonical required a copyright assignment for any contribution to Upstart, and Lennart/Kay decided that if they basically have to substantially rewrite it to fix the broken architecture, they better do it in a new project with no copyright assignment barriers.

See the comments in this thread by Upstart author and former Canonical employee Scott James Remnant:

https://web.archive.org/web/20140928104327/https://plus.goog...

Had the CLA not been in place, the result of the LF Collab discussions would have almost certainly been contributions of patches from +Kay Sievers and Lennart (after all, we'd all worked together on things like udev, and got along) that would have fixed all those design issues, etc.

But the CLA prevented them from doing that (I won't sign the CLA myself, which is one reason I don't contribute since leaving Canonical - so I hold no grudges here), so history happened differently. After our April 2010 meeting, Lennart went away and wrote systemd, which was released in July 2010 if memory serves.

> But that’s precisely what it allows you to do

And if I don't want a building block like logind or journald, can I not use them? Can I take those blocks elsewhere, like over to FreeBSD and use them there?

SystemD is not "building blocks" — which implies modularity — it is a monolith: components cannot be added or taken away or replaced. The best you can do is maybe run disable --now. (I'm at least thankful I can usually do an apt purge resolved.)

We had reasonable building blocks before systemd...
A bunch of barely working duck-taped Bash scripts? Hardly reasonable.
You’d be surprised just how often systemd calls bash scripts.
You might have done barely working duck-taped Bash scripts; not eveyone who calls themself a 'system admin' is competent. But actual professionals who ran these systems since the 1970s had carefully written, fully functional scripts and we were quite capable of keeping hundreds and thousands of servers running just fine. Being bad at your job isn't the tools fault.
All Bash scripts are duck-taped by definition. It's a shitty duck-tape language.

> thousands of servers running just fine

Err yeah well you might have noticed these things called "laptops" and "desktops". SysVinit was... fine.. on servers. It worked badly on desktops and not really at all on laptops. I'm pretty sure the post introducing SystemD explained it all in detail if you want to learn something.

Bash doesn’t just stop working because the x86 CPU is inside a different form factor. And actually Linux (and BSD too) did used to run on commodity desktop for local ISPs, newsgroups and so far n and so forth. That was part of the reason for their success story: Linux and FreeBSD meant smaller Internet-facing business in the late 90s didn’t have to buy expensive mainframe hardware to run Unix software.

The issue with Linux on the desktop, and especially the laptop, in the pre-systemd days wasn’t the init system. It was the lack of quality drivers.

Now I’m not saying that systemd hasn’t brought improvements over sysv. But to say bash worked badly on laptops but fine on servers is just silly. That’s simply not how the technology works at all.

And I don’t need to read some promotional piece from Redhat to know this. I’ve been running Linux on desktops and laptops longer than many adults have been alive. So I’ve lived through these massive ecosystem changes and have a first hand account of life before systemd.

Actually yes, that's why they did stop working. Laptops regularly change hardware configuration. Desktops less so. Back when "local ISPs, newsgroups and so on and so forth" had desktops, they never changed hardware configuration while running.
Total lack of understanding what is happening.

There is difference between mandatory one implementation and set of funcionalities. Systemd is monolit with visible parts that provide somewhat modern funcionalities in 'nix world.

And there is no serious developers in 'distro' space, except RedHat. And, really, there is no such thing RedHat we have in old Linux days - it was devoured and we just have a label doing corporate propaganda.

So when few modern init systems were hatching RH dropped systemd and, as RH is main force in distros development, it gained dominance.

And since then thing are getting worse.

Eg. cgroups ? systemd first used them and so much hype happened. But is it deserved hype ? No! They implemented cgroups v1 when cgroups v2 was available. And cgroups v2 usage was blocked for years. In systemd too.

Do not make mistake of not seeing difference between good and modern functionalities and one codebase with funding that block real development.

Edit: formatting*

I think we just have different ideas of what the word "reasonable" means.
I don't think anyone seriously defends sysvinit.

However upstart was totally reasonable.

Nobody even uses sysvinit. When people say they use sysvinit, they actually mean a pile of ad-hoc shell scripts that have no relationship to sysvinit.
> I think we just have different ideas of what the word "reasonable" means.

I think we just have different ideas of what the term "building blocks" means.

You cannot add (or remove) part of systemD as you wish: on a Linux system I cannot replace journald with something, and I cannot bring journald over to FreeBSD. SystemD is tightly-coupled (heck, they even borg'd in udevd, which was an independent project at one point).

Building blocks in my mind are like Legos: you can put together the thing you see on the box, but the individual (literal) blocks can be used however you wish.

This is the best point I’ve heard for this perspective.

I guess I just never cared to actually LEGO much with Linux.

an init system that is just an init system. _That's it_. Any other option is unreasonable.
I can recommend the book "Savaged by Systemd"

It's on AA

I keep meaning to leave a copy of this around the office somewhere however i suspect it would trigger HR
Where "basic" follows a highly nuanced alternate definition, where if you step out of line without realising it, you lose 3 days debugging a complex undocumented interaction between 4 enterprise crapware daemons only to find out the answer is "you're wrong and won't fix" buried in a 6 year old bug report, when all you did was plug in a USB mouse or try to set the default audio output device, or something else.

Total and utter propaganda, it's underdeveloped steaming garbage

Yeah, and these LEGO blocks are strewn around the room by a 3-year-old just waiting for you to step on them. It's the worst thing, there is no organization in systemd. No rhyme or reason to it.

The basic core service supervision in systemd is great. And nearly everything else around it is bad as a result: command-line utilities, filesystem mount handling, virtualization integration, network configuration, etc.

Just look at systemctl's `--help` if you don't believe me. Why does it have `service-log-level` to set the log level for the target, but not a way to actually _view_ the logs? Or why does it have a top-level `--firmware-setup` flag?