Hacker News new | past | comments | ask | show | jobs | submit login

No, I think the systemd project shouldn't exist. I have no problem with someone writing a sudo replacement.

Do you understand the difference?




Do you also think the GNU project shouldn't exist? If not, what's the difference?


I can use GNU bash on NetBSD with no other GNU software installed. I can install GNU coreutils on Alpine Linux (complete with musl libc instead of glibc). In fact, it's possible to just install a single part of GNU coreutils but not the rest - ex. Alpine packages just sha512sum as https://pkgs.alpinelinux.org/contents?branch=edge&name=coreu... (not sure why). I don't think I've seen it done, but you could build a Linux distro that used glibc and gcc but no other GNU software (busybox coreutils and ksh shell, say). GNU has their own kernel, but is predominantly used on other OSs. They want to build all the pieces, but you can opt in or out of all of them, and they're all portable. In contrast, if you want to use, say, run0, you must run systemd as PID 1, you must use journald, and the whole stack only runs on Linux. So yeah, that is actually different.


> and they're all portable...

I think that portability is a deliberate anti-goal of systemd.

> In contrast, if you want to use, say, run0, you must run systemd as PID 1,

No, you must run something on pid 1 that implements the spec, similar to how musl can be used instead of glibc - they both implement the same spec.

Run0 expects pid 1 to behave a certain way, much like my web browser expects web servers to behave a certain way.


> I think that portability is a deliberate anti-goal of systemd.

Yes, and that is one of the things I dislike about it. (In fairness, the list of things I like about it and the list of things I dislike about it are both fairly long.)

> No, you must run something on pid 1 that implements the spec, similar to how musl can be used instead of glibc - they both implement the same spec.

> Run0 expects pid 1 to behave a certain way, much like my web browser expects web servers to behave a certain way.

If there's only one implementation, then it's not portable. If a webapp uses a web API that only Chrome implements, it's not portable regardless of whether Google published a spec for their non-standard behavior. There are dozens of web servers and web clients that all speak HTTP, there is one systemd.


Once upon a time, there was only one web browser too.


or OpenBSD




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: