Hacker News new | ask | show | jobs
by rainbow29822 1329 days ago
>systemd should be an optional package on all distros.

Why? Should glibc also be optional? What about the Linux kernel? What about apt-get? You can technically replace those things but it's a ton of extra work, almost like shipping a completely different distro. At the end of the day, a distro decides what packages it wants to support and what it doesn't. The specific choice of supported packages is often what defines a distro and sets it apart from the rest. If they have limited manpower and choose to save themselves time by picking only one init, or libc, or desktop environment, or anything, that's their decision.

>but would any here really insist on forcing everyone else to use your methods and no others?

No. There are hundreds of Linux distributions to choose from, and anyone can make more distributions any time they want. No one is forced to do anything. Also, using Linux is optional to begin with.

>systemd, among other valid criticisms, is unmistakably fascist. For anyone but parent, don't just be thin-skinned and downvote my comment because you have allowed yourself to be insulted. Be courageous and disagree with me if you can. How is systemd not fascist?

You should stop and think a bit more before making these comments that you appear to be acknowledging as histrionic and insulting. By this definition BSD is also "fascist" due to only shipping BSD init, and the Linux kernel is "fascist" due to only shipping one set of drivers, and Devuan is also "fascist" for not supporting systemd...

2 comments

Why? That is a very good question!

Libc and linux kernel are good solutions to well defined problems: a standard C library, and a kernel. They pretty much do what is expected, sometimes they do more, but not by much.

Systemd? It is not a good replacement for an init system for the users. Instead, it is an OS functionality accretion for the benefit of distributors, a baroque monstrosity that provides mediocre buggy solutions to too many problems that have nothing to do with init. It boots nondeterministically (socket activation is not such a universally great idea), sometimes hangs randomly, it disrespects the user when ignoring keyboard input while waiting 90s or indefinitely for some condition, or launching zillions of bogus hog processes for every user login event. Some of these can be mitigated on a production server, but bad taste remains.

>Libc and linux kernel are good solutions to well defined problems: a standard C library, and a kernel

That's subjective. I've talked to a lot of Windows users who all say Linux is a terrible solution for them. I don't think most Debian developers feel they should suddenly drop everything and start making Linux exactly like a copy of Windows just to please those people. They voted on this several times, they wanted systemd.

>it is an OS functionality accretion for the benefit of distributors

There's no problem with this. Most users don't touch the init system that much. They interact with it primarily through the package manager installing service files.

>solutions to too many problems that have nothing to do with init

Those are all optional add-ons for users who are having thoes problems.

>It boots nondeterministically (socket activation is not such a universally great idea)

This is also only an option. You don't have to use socket activation. It's there if you want it and you don't need to strictly order services.

>sometimes hangs randomly, it disrespects the user when ignoring keyboard input while waiting 90s or indefinitely for some condition

Not sure what this means or what keyboard input you were pressing. In systemd the keyboard shortcut to force reboot is pressing Ctrl+Alt+Del 7 times: https://www.freedesktop.org/software/systemd/man/systemd-sys...

>or launching zillions of bogus hog processes for every user login event

Not sure what this means either. You can disable those.

> That's subjective. I've talked to a lot of Windows users who all say Linux is a terrible solution for them.

That's a different statement. I said those linux parts are good solutions to a libc library and unix kernel. Not good solutions to needs of Windows users.

> Most users don't touch the init system that much.

Most BFU users don't touch the init system. If you're a developer/administrator/power user, you do. Yes there is more BFUs (website users, android users) than power users, but that does not mean that the latter group should be pushed to not care about their init system.

> Those are all optional

Not in practice; some of those options are integrated and others are chosen by the distributions. It's hard to reconfigure the system to opt out of journald or user session control.

> You don't have to use socket activation. It's there if you want it and you don't need to strictly order services.

Yes, but that won't solve the problem entirely, systemd is non-deterministic init system where you can't fix the boot order reliably.

> Not sure what this means or what keyboard input you were pressing. In systemd the keyboard shortcut to force reboot is pressing Ctrl+Alt+Del 7 times

Ctrl+C, Ctrl+Z. I mean I don't always want to reboot because something went wrong in the boot process and systemd is stalling. I want info from my init what went wrong, and the option to fix the problem in the shell if possible. This is often not allowed by systemd when it could.

> Not sure what this means either. You can disable those.

It means systemd launches bogus processes slowing down the system. It's well known, it's in the trackers, yes I can and i do disable them.

The point is this sucks and neither the systemd developers neither the distribution(rhel and derivatives) care to fix this.

> Should glibc also be optional? What about the Linux kernel? What about apt-get?

In my opinion, yes, they should absolutely be optional. Whether or not that is feasible today does not change the advantages of each component of the system being optional and replaceable. It is more failure tolerant both from a purely technical perspective, and also from an organizational perspective.

If you're only talking in hypotheticals then they're already optional and replaceable. Someone just needs to do the work to replace them.

You're missing that these parts have to get replaced for a practical reason. Not just because someone vaguely feels it would be more fault tolerant. For example, think of some other libc that's optimized for a certain hardware. Distros that don't support that hardware would have no reason to ever use that libc. If you say all distros should support it, then your opinion is really "all distros should support this random hardware that might be rare, expensive, highly specialized, hard to develop for, etc" and now that's a much more complex and demanding task you're asking someone to do, for very little benefit.

I'm not saying that every distro should support every piece of software that's out there, that would be wasteful and very difficult.

What I am saying is that, ideally, every component in a distro (or any important software, really) should have at least two options, so that if one option fails for whatever reason, the user has a choice to swap it and keep working. This is already true with many components of a distribution.

This is how I am writing my application. It is not fully there yet, but I plan for every dependency to have an alternative. I also favor dependencies with long streaks of no breaking changes, having been previously affected by breaking changes in dependencies I was using.