News for hackers. Stuff that matters.
Re:Debian reconsiders init-system diversity by nine_k on Tuesday November 12, 2019 @01:11AM (#21511902)
Systemd is monolithic, and does a lot of things that one might want to do differently. It follows the footsteps of a similar macOS program, and apparently imports a bit of the general philosophy from Apple: one way to do all the things, dictated by the producer of it.

It's much more than an init system; it obviates a number of other components. This may be a desired quality for some. "Linux monoculture" is a real thing, and systemd makes it seriously more monocultural.

The fact that systemd did not have the highest reliability for years did not help its popularity. It was not entirely gently pushed on everyone by Red Hat, by making Gnome dependent on it.

OTOH the history shows that technically poor, and even terrible, things can get wide enough adoption and stick with us for a long time; X is a good example, SysV init is another.

Re:Debian reconsiders init-system diversity by mateuszf on Tuesday November 12, 2019 @01:15AM (#21511920)
> OTOH the history shows that technically poor, and even terrible, things can get wide enough adoption and stick with us for a long time; X is a good example, SysV init is another.

Funnily Unix and C are also examples of "worse is better".

https://www.jwz.org/doc/worse-is-better.html

Re:Debian reconsiders init-system diversity by nitrogen on Tuesday November 12, 2019 @01:29AM (#21511978)
Clicking that link from HN will (usually?) give you something NSFW; jwz doesn't like HN, so copy/paste the link if you want to see the real link.
Re:Debian reconsiders init-system diversity by SturgeonsLaw on Tuesday November 12, 2019 @01:54AM (#21512071)
Didn't do it for me after multiple attempts :(
Re:Debian reconsiders init-system diversity by mike_d on Tuesday November 12, 2019 @03:21AM (#21512469)
You end up with a redirect to https://web.archive.org/web/20191014203443/https://www.jwz.o...

(Mildly NSFW)

Re:Debian reconsiders init-system diversity by DyslexicAtheist on Tuesday November 12, 2019 @05:02AM (#21512924)
perhaps your browser strips the http referer header (with custom settings or done by some privacy extension)?

https://wiki.mozilla.org/Security/Referrer

Re:Debian reconsiders init-system diversity by uwydr on Tuesday November 12, 2019 @08:50AM (#21514034)
Re:Debian reconsiders init-system diversity by pferde on Tuesday November 12, 2019 @02:01AM (#21512101)
Wait, you do not block HTTP referers by default? In this day and age where vast majority of websites are out to scoop any and all available information about you?
Re:Debian reconsiders init-system diversity by tome on Tuesday November 12, 2019 @02:27AM (#21512202)
The fact that you don't send a Referer may ironically make it more easy to track you.
Re:Debian reconsiders init-system diversity by minitech on Tuesday November 12, 2019 @02:53AM (#21512321)
It’s information for fingerprinting, sure, but not sharing the page you’re visiting from for every link click is much more important for privacy IMO.
Re:Debian reconsiders init-system diversity by boomlinde on Tuesday November 12, 2019 @10:37AM (#21514884)
The best option I think is to spoof Referer to a random choice of known good values. This, of course, after disabling other, more reliable tracking vectors like JS and cookies that would just identify you as a Referer spoofer.
Re:Debian reconsiders init-system diversity by pferde on Tuesday November 12, 2019 @03:14AM (#21512431)
Anything you do online can be used to track you. The point is that by doing this, you plug an additional information leak about yourself.
Re:Debian reconsiders init-system diversity by DoctorNick on Tuesday November 12, 2019 @01:28AM (#21511974)
More testicles mean more iron.
Re:Debian reconsiders init-system diversity by sjwright on Tuesday November 12, 2019 @01:33AM (#21511991)
Given that systemd is just a set of interconnecting components, is it really fair to call it monolithic? While it does ship as a unified project, my understanding is that you can substitute individual parts of it easily enough.
Re:Debian reconsiders init-system diversity by Ace17 on Tuesday November 12, 2019 @02:43AM (#21512272)
Modularity requires more than being a "set of interconnecting components" (otherwise, all codebases with more than one source file would be "modular", and there would be no monoliths).

Modularity implies formalization and restrictions about how components communicate and depend.

One of the goals: the ability to replace the implementation of one component without having to modify/adapt the others (the top-level component (also called 'main' or 'composition root') used to instantiate all the others doesn't count).

If your components can be compiled separately (e.g without having to recompile the whole app), then you know you're modular (however, modularity doesn't necessarily involve dynamic linking).

Real world examples of modularity:

- device drivers of the Linux kernel

- SDL device backends

- decoders/demuxers in VLC

- Cubase VST effects

- Filters in DirectShow and Gstreamer

Real world non-examples:

- LLVM backends: in practice front-end implementations need to know about the various backends, so you can't simply add one.

- GCC frontends: almost modular, however, there's some bunch of places you still need to modify so they know about your new frontend.

- GCC plugins: although no line of code in GCC know about your plugin, your plugin can depend upon almost anything from the GCC implementation itself, in other words, the plugin API is too big (=the density of interconnections is too high).

- Descent 1&2 (the game) enemies: the list of enemies appears at several places in the codebase, so you can't simply add one (=the density of interconnections is too high).

Re:Debian reconsiders init-system diversity by mike_d on Tuesday November 12, 2019 @03:52AM (#21512621)
> Descent 1&2 (the game) enemies: the list of enemies appears at several places in the codebase, so you can't simply add one (=the density of interconnections is too high).

I'm not sure why you picked such a specific example, but it looks like read_robot_info() will happily read in additional robots from descent2.ham if you increase MAX_ROBOT_TYPES and stick them in the same global. There might be specific behavior info sprinkled elsewhere in the game, but that is probably code you'd need to touch to implement the uniqueness of new enemies anyway.

Re:Debian reconsiders init-system diversity by lmm on Tuesday November 12, 2019 @07:22AM (#21513481)
The interfaces between those components are not stable and so outside projects cannot reimplement them, which is the entire problem with monoliths. Indeed systemd does not even maintain a stable interface with nominally separate components; it's tightly coupled to particular versions of udev and in turn the kernel.
Re:Debian reconsiders init-system diversity by nine_k on Tuesday November 12, 2019 @01:56AM (#21512079)
Can one easily enough substitute the binary logger for something else?
Re:Debian reconsiders init-system diversity by sjwright on Tuesday November 12, 2019 @03:30AM (#21512521)
You can redirect logs to a different agent, or you can use systemd's journald and set it to forward to syslogd.
Re:Debian reconsiders init-system diversity by mateuszf on Tuesday November 12, 2019 @03:51AM (#21512617)
Binary logger is one of the few parts which are considered the core.
Re:Debian reconsiders init-system diversity by freedomben on Tuesday November 12, 2019 @01:36AM (#21512004)
Exactly. Systemd is highly modular, and for the most part can work with a variety of different alternatives and interconnections. There a few hard dependencies but for the most part I don't think it's fair at all to call it monolithic.
Re:Debian reconsiders init-system diversity by flukus on Tuesday November 12, 2019 @02:27AM (#21512201)
If it's highly modular then why (according to TFA) are they struggling to incorporate a fork of a systemd subcomponent? If that's not easy to do then it's not modular.
Re:Debian reconsiders init-system diversity by geofft on Tuesday November 12, 2019 @03:21AM (#21512465)
As I understood the thread, the problem is not that it's hard to get elogind running, the problem is that getting applications to provide tested, supported non-systemd init scripts (or equivalent) requires a commitment from the packager and occasionally from the upstream community.

This is an entirely unrelated question to modularity - the "problem" is that systemd supports certain features and if you want to run without systemd, some other component needs to support them. Such components could be designed pretty easily, sure, but people who are using those features are typically happy with systemd's implementation so there's little motivation to write them.

In the article, systemd's tmpfilesd mechanism is given as an example. It's straightforward to reimplement as a standalone component, but someone has to actually be interested in writing the implementation and writing tests that it behaves like systemd does and keeping it up to date.

Re:Debian reconsiders init-system diversity by makomk on Tuesday November 12, 2019 @12:26PM (#21515941)
My understanding is that the problem is that extracting logind from systemd required such major surgery that they're worried the other applications which use logind won't be compatible with the modified version. There's also a seperate concern about init scripts for other applications.
Re:Debian reconsiders init-system diversity by flukus on Tuesday November 12, 2019 @03:48AM (#21512595)
What you just described is still very much what I'd call a monolith. Much like if you have a microservice architecure (that we had a system level prior to systemd) then each component should be testable, upgradeable and swappable in isolotation, if you don't have that then what you've really got is a distributed monolith (obligatory xkcd: https://sebiwi.github.io/comics/distributed-monolith/).

What we have here is a dependency chain that pulls in all of systemd, therefor it isn't modular.

It isn't modular just because it's divided into modules.

Re:Debian reconsiders init-system diversity by geofft on Tuesday November 12, 2019 @07:29AM (#21513513)
Each component is testable, upgradable, and swappable in isolation. There are no technical issues with doing so. What is missing is interest in implementing and testing a full-featured alternative to some of the components. As soon as that alternative exists, it's usable.

You wouldn't say that a company lacks a microservice architecture simply because they don't have unused reimplementations of each microservice lying around, would you?

Re:Debian reconsiders init-system diversity by sjwright on Tuesday November 12, 2019 @04:35AM (#21512799)
> It isn't modular just because it's divided into modules.

Come on, that's literally what it means. Just because your modules aren't compatible doesn't mean it isn't modular.

Re:Debian reconsiders init-system diversity by de_watcher on Tuesday November 12, 2019 @03:07AM (#21512397)
It's only modular when it's used like that in practice. I write a lot of "modular" stuff, but it tangles violently first time you actually try to use it in a modular fashion.
Re:Debian reconsiders init-system diversity by lazyguy2 on Tuesday November 12, 2019 @01:35AM (#21512003)
> Systemd is monolithic,

It's monolythic in the same what that the GNU project or FreeBSD is monolithic.

It's a large number of utilities, tools, and daemons that is designed to provide the low-level features application developers and users demand from a modern operating system.

> It's much more than an init system;

Systemd is a init system, but systemd is also a major project that has taken on the task of unifying low-level Linux OS features.

> "Linux monoculture" is a real thing, and systemd makes it seriously more monocultural.

FreeBSD is a monoculture. OS X is a monoculture. Solaris is a monoculture. OpenBSD is a monoculture.

All these systems have their own init systems they designed with no regard towards Linux and replaced older systems and obsoleted them.

> It was not entirely gently pushed on everyone by Red Hat, by making Gnome dependent on it.

Lies and misrepresentations.

> OTOH the history shows that technically poor, and even terrible, things can get wide enough adoption and stick with us for a long time; X is a good example, SysV init is another.

Which is why people are working on replacing both X and SysV.

You want to know the real problem with anything-but-systemd crowd?

This:

> Of course, this approach is not viable if it turns out that too few people are interested in init system diversity sufficiently to do the reasonably substantial implementation work required to maintain a competing implementation of the systemd unit features we care about.

There is no 'If' there. Some people don't want systemd, but the only people doing the work are Systemd. So their choice is to stick with Linux from 2000's or use systemd. Because nobody wants to commit to making any alternative actually work.

Making noise online is annoying, but it ultimately is not something that goes into the decision making of people designing operating systems. People willing to do the work are the ones that get to make the choices.

If somebody comes along and makes a better init system then systemd then they can do it and if it is better it will get adopted.

You can pretend that this is all Redhat's fault, but they are the only real enterprise that made the transition from sysv in Rhel 5, to upstart in 6, and then to systemd in 7.

And, ironically with systemd, migrating to another different init system is massively simplified compared to the work it took to migrate from sysv init. So now moving to a new init system is easier then ever.

Why do I say this?

Because systemd has unified OS design for Linux in a way that never happened with sysv init. Sure people were using 'sysv' and all used shell scripts, but they were all fundamentally different from one another. Only the most complicated shell scripts imaginable (think Apache init) or the most trivial could be made to work on more then one Linux distribution. Meanwhile systemd uses a declarative configuration syntax that all you need to do is create a parser and you could effectively import any systemd application configuration into a system with equivalent or better capabilities in any operating system.

The same can't be said for any of the bash scripts developed by any of the distributions prior to this for their own sysv variant.

Re:Debian reconsiders init-system diversity by AdieuToLogic on Tuesday November 12, 2019 @02:30AM (#21512212)
> > Systemd is monolithic,

> It's monolythic [sic] in the same what that the GNU project or FreeBSD is monolithic.

The FreeBSD system initialization artifacts are not monolithic.

> > "Linux monoculture" is a real thing, and systemd makes it seriously more monocultural.

> FreeBSD is a monoculture. OS X is a monoculture. Solaris is a monoculture. OpenBSD is a monoculture.

This is straw man incarnate.

> > It was not entirely gently pushed on everyone by Red Hat, by making Gnome dependent on it.

> Lies and misrepresentations.

Not according to here[0].

If you want to be a "systemd warrior", fine, feel free to be so. But don't lump FreeBSD and other Unix systems into your crusade.

BTW, when you wrote:

> Because systemd has unified OS design for Linux ...

Know that an init system, any init system, does not design nor define an Operating System.

And while your disdain for shell scripts is readily apparent, what you proffer as the benefit of "... systemd uses a declarative configuration syntax that all you need to do is create a parser ..." ignores the fact that POSIX shell scripts provide this feature by definition. Including, but not limited to, being able to source other files which define requisite variables.

0 - https://www.quora.com/Why-does-GNOME-3-require-systemd

Re:Debian reconsiders init-system diversity by diffeomorphism on Tuesday November 12, 2019 @04:12AM (#21512718)
> The FreeBSD system initialization artifacts are not monolithic.

And nobody claimed that... . The claim was that FreeBSD is monolithic in the same way that the systemd project (logind, nspawn etc. ) is monolithic.

> Not according to here[0].

Okay, let's click on that. First sentence "It doesn't". What were you trying to argue again?

> Know that an init system, any init system, does not design nor define an Operating System.

Are you purposely confusing systemd-init and systemd the project? Because your argument is the same as "GNU does not design or define an OS", which many people would call plain wrong.

Re:Debian reconsiders init-system diversity by AdieuToLogic on Wednesday November 13, 2019 @11:46PM (#21532869)
> > Not according to here[0].

> Okay, let's click on that. First sentence "It doesn't". What were you trying to argue again?

And the second sentence says:

  What it requires is a service that
  implements the same set of APIs as
  systemd-logind.
Since GNOME requires either systemd-logind or something that behaves exactly as systemd-logind, how does that not express a transitive dependency on systemd?

So what are you trying to argue again?

> > Know that an init system, any init system, does not design nor define an Operating System.

> Are you purposely confusing systemd-init and systemd the project?

No, what I stated I thought was quite clear: an init system does not design nor define an Operating System.

This is orthogonal to the question you present.

0 - https://www.quora.com/Why-does-GNOME-3-require-systemd

Re:Debian reconsiders init-system diversity by ldng on Tuesday November 12, 2019 @02:33AM (#21512227)
You are missing the point (and probably on purpose at that). Most people do not complain about systemd as init but evrything else. Furthermore Systemd try to replace software that works better than the alternative it proposes. So your argument nobody is doing it is moot. You're comment, using a part for the whole, is misleading and used every time someone criticizes systemd the umbrella, it's getting old.
Re:Debian reconsiders init-system diversity by yyyk on Tuesday November 12, 2019 @02:48AM (#21512297)
> Some people don't want systemd, but the only people doing the work are Systemd.

IMHO, that's not the best way to say what I think you really meant.

There are alternatives for just about every single systemd function (e.g. there are other init system that are not sysvinit). It is true though, that the people implementing these alternatives are far more levelheaded regarding systemd than the haters - at least in my experience.

Re:Debian reconsiders init-system diversity by aduitsis on Tuesday November 12, 2019 @08:07AM (#21513731)
> FreeBSD is a monoculture. OS X is a monoculture. Solaris is a monoculture. OpenBSD is a monoculture.

I dare say there's bit of an irony in that assertion. 4 different operating systems, each of one of which uses a different init system. Pardon me, but that looks like the exact opposite of a monoculture.

Also, the rc system in FreeBSD could probably be ported with not too much effort into other operating systems, as it uses pure sh (not even bash). Surely, that cannot be considered monoculture. I would dare say that porting systemd into FreeBSD (or any of the other OSes you mentioned) should be more difficult.