Why opensuse chose systemd?

Hello :slight_smile:

I am a beginner with GNU+Linux in general, and one thing that caught my attention is that opensuse uses systemd.
These sites really made me feel very apprehensive on using systemd:
http://without-systemd.org/wiki/index.php/Main_Page, https://suckless.org/sucks/systemd
What are the reasons that made opensuse choose systemd?

On 2017-12-19, pensador 13 <pensador_13@no-mx.forums.microfocus.com> wrote:
> I am a beginner with GNU+Linux in general, and one thing that caught my
> attention is that opensuse uses systemd.
> <SNIP>
> What are the reasons that made opensuse choose systemd?

I suspect that a highly motivating factor is openSUSE’s desktop-agnostic policy means that supporting GNOME requires
systemd. Since you’re a beginner in GNU/Linux, you really shouldn’t care…

I personally never liked the fact Ubuntu went with systemd; it appears that Red Hat gets to push its own agenda on everyone, including every non RH derivative. That’s not good for the open source OS ecosystem and it means every OS including the BSD’s have to consider systemd, if they want to update their ports with newer versions of gnome.

On 12/19/2017 06:26 AM, pensador 13 wrote:
>
> Hello :slight_smile:
>
> I am a beginner with GNU+Linux in general, and one thing that caught my
> attention is that opensuse uses systemd.

While systemd proponents will tell you it’s “choice”, systemd has had a huge
impact and (perhaps sadly) you’ll have fewer problems (now) if you use systemd.

With that said, systemd does have some nice things about it. Probably the worst
part of systemd isn’t about what it is, but rather who’s in charge (just
subscribe to their mail list, it won’t take long to figure it out).

Every met that person that never apologizes, is always right, changes position
all the time? (Not talking about President Trump)

That’s not really true. Systemd is being adopted by many distros, because it does a lot of things better than the old sysvinit method.

The main thing wrong with systemd, is the absurdly arrogant person who gets to make important decisions.

Just about every Linux developer or person in charge of anything open source related fits this mold.

On 2017-12-20, nrickert <nrickert@no-mx.forums.microfocus.com> wrote:
> That’s not really true. Systemd is being adopted by many distros,
> because it does a lot of things better than the old sysvinit method.
>
> The main thing wrong with systemd, is the absurdly arrogant person who
> gets to make important decisions.

I believe some opponents of systemd claim they don’t like that it locks the operating system to using a Linux kernel.
Persective here helps I think. It’s just an init system and Hurd is not fit for use. Here’s a classic case of storm in
teacup. I think the real offenders are the GNOME team deciding to accept systemd as a dependency (albeit funtoo’s shim
overlay offers a hacked workaround). But again this is yet another storm in teacup because KDE is just so much better.

I sampled a random 5 links in the @OP post’s complaint reference,
And 3 were distro-specific (Fedora and Debian specifically) having troubles initially integrating systemd. First, initial problems should be expected, if anything it’s a testament to the hard work the people behind each distro do. Secondly, it also speaks to the first objective of systemd, to implement a common Linux subsystem for all participating distros with expected benefits… An assurance that an app can run on all distros (exclusive of package management differences), and low level commands can be run that will work everywhere.

You have to have a realistic view of all Linux distros before systemd (ie SysVinit). Distros had different commands to do basic functions like logging in and shutting down a system. basic file trees were mounted differently. The bottom line is that as a Linux SysAdmin, you had to learn individual commands and learn where everything was on the Linux systems you managed, which meant that no one really wanted more than one, or at most two distros in their network.

Systemd has changed a lot of that.
Early adopters like openSUSE and Fedora have had relatively few issues migrating from SysVinit to systemd. Distros that balked for various reasons have had more reported problems for whatever reason. But, even before systemd, distros like Ubuntu had already been implementing their own non-init movements, like Upstart.

Because I personally didn’t have to invest a decade or more of my life learning the Linux init subsystem, I’ve not felt the pain of changing to systemd, and from a Developer’s background I can appreciate a number of the improvements systemd has made over init.

  • From a security perspective, systemd manages processes with a strong emphasis on using cgroups. Cgroups has existed for a long time, but was relatively unusused or not required automatically using init. What this means is that when you start something and that spawns something else, your original becomes a parent process and spawned processes become child processes. In systemd spawned processes are managed as part of the same cgroup as the parent process so that if you shut down the parent process, all the child processes would also be killed. With init, no such tree management exists, or is guaranteed, so when parent processes were killed, in some situations you’d have orphaned processes which continued to run. In lay terms, it means that when you issue a command to shutdown or kill and application or more, everything related should be terminated cleanly. With init, you’d have no such guarantee, and you could have miscellaneous processes still running.

  • systemd tries to be more efficient with less redundant code. When you launch multiple instances of something, init will read the same init file to instantiate a new process. systemd will instead launch a new instance as part of the original process. Various init files will have the same script content, while systemd encourages you to re-use the same code by calling the unit file with that code.

  • systemd wants to eventually replace some script commands with binaries. At least today, binaries run much faster and more efficiently than script code which generally is run through an interpreter.

  • With init, and still largely today you have to learn completely new language syntax if you want to access or manipulate any subsystem. For example, if you wanted to query, diagnose and modify udev it’s a whole new world. But, systemd hopes to eventually replace every subsystem with a common syntax so that you will use the same commands when working with every subsystem. One language to manage them all.

  • Logs used to, and still largely are scattered all over your system. You not only have system logs but application logs everywhere. Nearly all those logs can now be found in the journal. Not only do you have a single place for all your logs, but now it’s possible to correlate data from different logs to reveal new understandings which aren’t possible if the data wasn’t available or in the same database.

  • With the journal, errors can now be displayed automatically with a relevant log snippet and other useful information, speeding your error analysis and mitigation.

That’s just off the top of my head.
So, generally I’ve felt that systemd has made my Linux experience far better than the old SysVinit days.
Not to say that the old ways are completely useless… Although the bigger picture of how things work may not be compatible with how things used to work, there are still many individual things which still work as they always have under both subsystems.

IMO,
TSU

I suspect the definitive answer from an openSUSE view is this white paper from the SUSE folks: <https://www.suse.com/docrep/documents/huz0a6bf9a/systemd_in_suse_linux_enterprise_12_white_paper.pdf>.
[HR][/HR]SUSE is what appears when you logout from this openSUSE Forum.

Nice paper.
It’s not complete by any means even if you’re trying to hit only highlights, but it covers a lot of ground with <very> few words and I don’t see anything at all that is inaccurate.
And the small examples sprinkled in it are not just useful, they’re just the kind I think people look for and some I haven’t seen in more popular references on the web.

Well worded, can be something to reference.

IMO,
TSU

Thank you all for your replies :slight_smile:

Actually, I noticed the pointer to the SUSE White Paper in the “Publications” section of the “systemd” web site: <https://freedesktop.org/wiki/Software/systemd/>.

To answer the original question, its simple really - Suse was an RPM based Linux derivative; essentially a branch of the Redhat project. Redhat is the biggest player within Linux circles, due to RHEL being widely accepted by SIAC(ICE), SAS, just to name two. Thus RH drives much new development on many popular projects such as Gnome, and Wayland. They are the M$ of the open source world, and they are hard to fight, so their init solution, systemd, inevitably became the accepted solution. My only concern with it is that for me, personally, I always liked Linux because it seemed to be the opposite in design & philosophy of M$ Windows, but as time marches forward, large corporate players like RH, push their own open source agenda, and users really had little practical choice beyond accepting it. The alternative is OpenBSD, but where are they within the grand ecosphere? Really, nowhere beyond openssh, and maybe opensmtp. Basically, the *BSD’'s have little practical desktop value, and will always remain behind the scenes as server only OS options. Thus one has 3 choices: Linux with systemd, M$ Windows (gag me), or OS/X. Now, OS/X is a FreeBSD derivative, but it uses its own init system, so even there, you have to move away from a classical initi solution, thus, I say, stick with Linux, and move forward with its systemd.

On 2018-01-05, BlueMagoo <BlueMagoo@no-mx.forums.microfocus.com> wrote:
> To answer the original question, its simple really - Suse was an RPM
> based Linux derivative; essentially a branch of the Redhat project.

Please correct me if I’m wrong, but IIRC the original S.u.S.E. was a branch from Slackware rather than Red Hat?

On Fri, 05 Jan 2018 12:56:01 +0000, BlueMagoo wrote:

> To answer the original question, its simple really - Suse was an RPM
> based Linux derivative; essentially a branch of the Redhat project.

This is literally not true.

SuSE Linux (the predecessor of openSUSE) was a derivative of Slackware.

See D.5 at http://opensuse-guide.org/history.php

Do not mix the “RPM” package format with the RedHat distribution - a lot
of people take that to mean that SUSE was derived from RedHat - nothing
could be further from the truth.

RedHat first came on the scene in 1994 when Mark Ewing created the
distribution.

SuSE came on the scene in 1992 - two years earlier.

Jim

–
Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

Link has moved. Here’s the current link (as of 2022-07-16):

https://documentation.suse.com/external-tree/en-us/sles/12-SP4/systemd_in_suse_linux_enterprise_12_white_paper.pdf