Most active commenters
  • cf100clunk(3)
  • netbsdusers(3)
  • wkat4242(3)

←back to thread

167 points sunshine-o | 30 comments | | HN request time: 0.654s | source | bottom
1. travisgriggs ◴[] No.43569845[source]
This actually is kind of cool imo. There are things I like about systemd, and things I don’t. And this seems to fit much more closely around the things liked. Wish I had the time to play more with it on Linux. Would love to see Debian switch to something like this. Always felt like Debian was stuck between “all in” or “go without”. This would have been a nice middle ground choice to have had back in those days.
replies(3): >>43570430 #>>43571106 #>>43572018 #
2. ape4 ◴[] No.43570430[source]
Yeah, I thought systemd relied very heavily on Linux-native things like cgroups.
replies(3): >>43570843 #>>43572066 #>>43576550 #
3. zokier ◴[] No.43570843[source]
They implemented their own cgroups-like thing with fuse https://github.com/InitWare/CGrpFS
4. cf100clunk ◴[] No.43571106[source]
> Always felt like Debian was stuck between “all in” or “go without”

Debian can be configured at installation to go ''all in'' with systemd or ''go without'' if you prefer. The latter option pretty well mooted the purpose of the Devuan spinoff. In the Bullseye version it is possible to change a running system from using systemd to sysvinit or OpenRC.

I agree about seeing how Debian reacts to how InitWare develops from alpha.

replies(2): >>43571877 #>>43572389 #
5. jefurii ◴[] No.43571877[source]
Interesting... here's a good writeup on one way to do it: https://lecorbeausvault.wordpress.com/2022/02/07/debian-swit...
replies(1): >>43572151 #
6. markstos ◴[] No.43572018[source]
Yes, I much prefer this more nuanced take of "here's some things I like about systemd and here's some things I don't" then the blanket "everything about systemd sucks" feedback.

I wish this project well. I hope it improves compatibility with BSDs for more projects.

replies(2): >>43572141 #>>43597259 #
7. netbsdusers ◴[] No.43572066[source]
Systemd uses groups for two things: for tracking processes other than direct children of the service manager, and for imposing resource limitations. Both can be done with other mechanisms, like kqueue's EVFILT_PROC and login classes respectively. But my experience in any case was that hacking up systemd to build and run under BSD it didn't need cgroups at all for basic running. Supervision of `Type=simple` and `oneshot` services worked fine. It wasn't particularly surprising to see this as cgroups really aren't ideal as a tracking mechanism - under cgroups v1, you only had a "cgroup empty" notification available as far as tracking the lifetime of processes within a cgroup, and even that was unreliable and could be left undelivered! So systemd used them to augment a more traditional process supervisor. That's why Pottering insisted on having it be PID 1, and got subreapers added to Linux for the per user systemd instances so that they could get the more traditional SIGCHLD based notification of process exits.
replies(1): >>43575481 #
8. skyyler ◴[] No.43572141[source]
"everything about systemd sucks" people generally don't understand the problems that systemd is attempting to remediate, in my experience. Just repeating dogma that they heard someone they consider cool say.
replies(1): >>43572916 #
9. cf100clunk ◴[] No.43572151{3}[source]
And info direct from Debian here:

https://wiki.debian.org/Init

10. yuriks ◴[] No.43572389[source]
The repo has had 3 commits in the last 4 years or so. I don't think it's going to get developed from alpha unless something suddenly changes.
replies(1): >>43572913 #
11. cf100clunk ◴[] No.43572913{3}[source]
A well-trending publicization via HN is a good help.
12. toast0 ◴[] No.43572916{3}[source]
Or perhaps, we don't have the problems that systemd is trying to solve. Or systemd creates new problems that we didn't need or want. Kind of like pulseaudio.
replies(2): >>43573594 #>>43579554 #
13. FeepingCreature ◴[] No.43573594{4}[source]
Yeah pulseaudio was like "you need this so you can have two apps playing music at the same time" entirely ignoring the existence of sound cards with mixers or the alsa soft mixer. Similarly, systemd was hyped at the time for, among others, allowing parallel service start entirely ignoring the several init systems that were already managing parallel start quite happily.
replies(1): >>43573996 #
14. GauntletWizard ◴[] No.43573996{5}[source]
This turned out to be entirely the right approach, though, and it was probably pretty obvious even at the time. Sound Cards with built in mixers have all but died out. Everything they did has been eaten by software,

Even at the time, few games used an API where they managed multiple channels directly; Software mixing was commonplace from the 90s. Any game that wanted to play battle sounds was not relying on the mere 6-8 channels that cards from that time could handle.

Our modern Pipewire based workflow is remarkably simple and remarkably effective, and it's significantly an evolution of PA.

replies(1): >>43575426 #
15. skyyler ◴[] No.43575426{6}[source]
I find it indicative of the quality of these complaints that sound cards with mixers were brought up at all. As if that's a good reason to hate PA.
replies(2): >>43578415 #>>43578470 #
16. o11c ◴[] No.43575481{3}[source]
Okay, but ... if you only get something that seems to work, but isn't actually reliable, what's the point?

You seem to be wrong about cgroup v1; freezing works and is sufficient to reliably kill all children. Half-killed services was one of those really annoying problems back in the dark ages of sysvinit (not the most common problem, but perhaps the hardest to detect or deal with when it did come up).

replies(1): >>43576303 #
17. netbsdusers ◴[] No.43576303{4}[source]
I'm saying that it did work perfectly fine and reliably for the common case of types oneshot and simple services. To expect it to work for type Forking services would be absurd since no mechanism would exist to even try to keep track of them. It's just a point to illustrate that systemd is not as intimately and irretrievably integrated with Linux features as some imagine.

Freezers were never used by systemd as part of its process tracking mechanism. And cgroup emptiness notification was unreliable under cgroups v1. So that's not wrong. It used some horrible mechanism where a binary is launched (!) when the cgroup becomes empty. And that can fail to happen under situations of low memory availability.

Related read is Jonathan de Boyne Pollard on cgroups:https://jdebp.uk/FGA/linux-control-groups-are-not-jobs.html

replies(1): >>43577200 #
18. sunshine-o ◴[] No.43576550[source]
This is what I was wondering when I searched and found this project: was systemd designed in a way it would inevitably leave behind the BSDs?

Because we always assume the BSDs rejected systemd but it might just be that they were put in a situation where they had no choice.

replies(3): >>43577842 #>>43581583 #>>43597381 #
19. o11c ◴[] No.43577200{5}[source]
My point is that a lot of apparently "simple" services do in fact call fork internally. Just a few things I've seen:

* fork to periodically make a snapshot of server state, to avoid slowing down the main server

* spawn an external gzip to compress a log file

* spawn a handler for some file format

* spawn a daemon to actually handle some resource, which might be used by other processes too (this really should be a separate managed service, but in the anti-systemd world this is often not the case)

If everything is working fine, you'll only waste a bit of server RAM for a few seconds if you fail to kill the children alongside the parent. But the circumstances in which you want to restart the service are often not "everything is working fine".

20. SoftTalker ◴[] No.43577842{3}[source]
The BSDs are not in competition with Linux so there's really no concept of being "left behind"
21. GauntletWizard ◴[] No.43578415{7}[source]
I'm always happy to discuss sound cards with mixers, though! As a supporter of the Bloop Museum[1], I think that the "What might have been" if we had dedicated hardware for playing dozens or hundreds of sound files at a time is an interesting question. There's a lot of experimentation in the audio space that has kind of died out, because audio is so cheap - While over in in graphics, we're still seeing interesting advancements and dead ends.

[1] https://oldbytes.space/@bloopmuseum

22. FeepingCreature ◴[] No.43578470{7}[source]
No, I hate PA cause it didn't work properly to the end. (Pipewire was better day 1 than PA ever was.) I just think that "you absolutely need PA to have multiple apps playing sound" was always nonsense, and the same sort of nonsense that was used to push systemd.
replies(1): >>43578571 #
23. toast0 ◴[] No.43578571{8}[source]
Yeah, that was total nonsense. Good cards existed. And if you didn't have a good card, alsa had a soft mixer. FreeBSD added a softmixer to OSS, too, so you didn't even need alsa. Worst case, you could run the Enlightenment sound daemon without Enlightenment and it was compact and just worked (as long as you had a simple sound setup)
24. jeroenhd ◴[] No.43579554{4}[source]
I do. systemd solves a lot of my problems, actually. Of course all of systemd could be cobbled together by combining a dozen or so independent projects, but that mess is exactly why normal people (even normal computer people) shy away from Linux.

And I don't recall a lot of software working well when Pulse isn't available, so I don't know why people still bring it up. Perhaps it's because I wasn't there at the time, but I've only seen ALSA as "that audio system you use when you have nothing else available". I still need the PulseAudio-wrapper for Pipewire to be useful for my systems, so clearly the Linux world has moved to Pulse-first.

25. netbsdusers ◴[] No.43581583{3}[source]
The idea of using a third party init system has always been quite alien to BSDs, the sames goes for almost all other Unix-like systems, which are almost all developed with a greater deal of integration within the core system. Linux is exceptional in this respect, that it has ever had a diversity of init systems.

This war of words between the BSD community and systemd, as far as I've been able to tell, dates back to when Poettering went to the GNOME mailing list to propose making GNOME depend on systemd. He made this request with the proviso that it shouldn't necessarily be a hard dependency, so that needn't have been a problem in itself, but then he made a remark in an interview with linuxfr.org:

> I don't think BSD is really too relevant anymore, and I think that this implied requirement for compatibility with those systems when somebody hacks software for the free desktop or ecosystem is a burden, and holds us back for little benefit.

and as you can imagine this was ill-received by the BSD community.

Could systemd, or at least a useful subset of it, have been made cross-platform from the get-go? It would've taken more work. I don't think the amount of work necessary would have been particularly onerous, which I hope InitWare shows. It would have required making certain compromises like systemd being happy optionally running as an auxiliary service manager rather than as the init system.

In the end, though, Poettering has his preference to target GNU/Linux only, and he is entitled to that.

replies(1): >>43583224 #
26. sunshine-o ◴[] No.43583224{4}[source]
Very informative, thank you.
27. wkat4242 ◴[] No.43597259[source]
> I wish this project well. I hope it improves compatibility with BSDs for more projects.

I don't think BSD compatibility is held back by its init system. It's more drivers that are the issue.

replies(1): >>43597506 #
28. wkat4242 ◴[] No.43597381{3}[source]
I don't think it's so much as rejecting it, it's just not it's even being considered. Because why would it? Something that isn't designed for BSD, that is heavily invested in Linuxisms (not so much cgroups but certainly dbus!). It just never made any sense.
29. markstos ◴[] No.43597506{3}[source]
I was referring to apps packaged for Linux which don’t work seamlessly on FreeBSD because they depend on some Linux-specific part of the systemd ecosystem.
replies(1): >>43603807 #
30. wkat4242 ◴[] No.43603807{4}[source]
dbus is a big player there, but that is available for FreeBSD for the packages that need it (desktop environments etc). Systemd isn't really that important in that sense. After all there are many Linux distros that don't use it and things work fine there too.

But yeah, BSD is not Linux. So obviously things are going to be different. For example for plug & play it has its own devd for USB devices, and it can be configured easily.

If you'd port over all the Linuxisms like dbus, systemd, cgroups etc, then you basically end up with... Linux. What is the point in running BSD then?

It's a bit akin to people saying that every Linux should be more standardised (e.g. standard package manager, standard desktop), otherwise "the year of linux on the desktop" will never happen. But all these quirky desktops and distros are there because people have different needs and they don't want those to be watered down. The ecosystem as a whole doesn't matter to them. The same thing goes for BSD. I'm not using an OS with a desktop marketshare of literally 0.01% because I care about it becoming a mainstream desktop :) I also super duper hate the ideology behind GNOME so I would never use that, if it were the only option then I would just have to leave.

PS: I have no issue with things like dbus being available in ports but definitely not in the core system.