News for hackers. Stuff that matters.
Re:Linux distros without systemd by tracker1 on Monday May 20, 2019 @01:16PM (#19962636)
Rust would have been more appropriate. Something like SystemD at such a low level in terms of hardware and service management should not be done in a language with a garbage collector imho.
Re:Linux distros without systemd by amalcon on Monday May 20, 2019 @01:33PM (#19962808)
> Lennart Poettering and Kay Sievers started the project to develop systemd in 2010.

https://en.wikipedia.org/wiki/Systemd#History

> Mozilla began sponsoring the project in 2009[16] and a nnounced it in 2010.

> The first numbered pre-alpha release of the Rust compiler occurred in January 2012.

https://en.wikipedia.org/wiki/Rust_(programming_language)#Hi...

Look, I like Rust and all, but are we really suggesting it for projects that predate public release of rustc?

Re:Linux distros without systemd by tracker1 on Monday May 20, 2019 @02:22PM (#19963423)
I understand that... Go still isn't an appropriate language for SystemD, also, when did SystemD really take hold? Lots of projects will shift underlying options with time.
Re:Linux distros without systemd by boomlinde on Monday May 20, 2019 @05:14PM (#19965282)
I understand "would have" in this thread as a hypothetical situation where the option had been available.
Re:Linux distros without systemd by jamesgeck0 on Monday May 20, 2019 @01:32PM (#19962803)
systemd predates Rust by a bit over a year.
Re:Linux distros without systemd by tracker1 on Monday May 20, 2019 @02:23PM (#19963427)
The point stands, Go isn't a good option for this type of process.
Re:Linux distros without systemd by jerf on Monday May 20, 2019 @04:43PM (#19964974)
The only thing that I can think of for that 2019 Go that would be a problem for this use case is binary size. None of the rest of the usual complaints would be stoppers or even that big a deal, and most of them, I'd pay to have a memory-safe language being used at that level. Init systems are a type of code that we don't have a good word for, but that I tend to end up in a lot, the code that isn't CPU intensive, or disk intensive, or RAM intensive, etc., but is all just logic and correctness rather than any of that. So "but Go is GC'ed!" isn't particularly relevant, for instance, because an init system pretty much ought to settle into a steady state and not be executing at all, on average, so who cares about a handful of microsecond GC pauses that may or may not occur at startup time?

Rust might be better now; my primary concern would be community size and whether I was limiting my contributor base, which Go also has as a concern. In both cases though I'd take it over C/C++ being used on such a critical project at this juncture.

In 2010, though... yeah, choices are a lot worse.

Re:Linux distros without systemd by tracker1 on Monday May 20, 2019 @07:25PM (#19966289)
I understand there's a much more limited subset of developers for Rust or even Go vs. C/C++. Also, I recall hearing about Rust before systemd, but am not sure. Today, it would probably be my first choice. Not that go is a bad choice, I just don't think it's a good spot for it. I also agree that either are probably quite a bit better than C/C++ options.

I'm not against go, other than gc and some size considerations. Given that a lot of k8s infrastructure for the likes of CoreOS and similar are written in it, it's definitely not a bad option. I think that today, and more so in late summer as async/await syntax settles, that Rust should be a first consideration for any low-level system code.

Re:Linux distros without systemd by fgonzag on Tuesday May 21, 2019 @04:29PM (#19974595)
It doesn't execute low level code in terms of hardware. It's a init system, all it (should do) is create a dependency graph and initialize the services in the correct order.

Many init systems have been created in bash, and I'd hardly call that a low level language.