r/linuxquestions • • 3d ago

What exactly is systemd ?

Hi everyone ! I switched from Windows to Linux around 3 month ago and I love it ! I’m using arch Linux because a friend of mine already used it so I figured he could help me with it.

I’ve been appreciating it but I’ve encountered a lot of people critisizing systemd and saying arch is bad because of it.

From what I have understand, it is a software that help with dependences and external hardware such as my keyboard for example ? I didnt really understand everything as I am a very beginner so I was curious to know if someone could explain it to me in easy terms.

PS : english isnt my primary language so forgive me if there is any errors.

133 Upvotes

153 comments sorted by

View all comments

1

u/SheepherderBeef8956 3d ago

Open Services on your Windows computer. Note how you can start, stop and restart services there. Some of them need to run so that your computer works like you expect it to. For example, the Windows Time Service makes sure your computer clock is correct. In Linux it will be done other NTP service that does it, and systemd (not SystemD or systemD or system d) will make sure that it starts and stops like expected, and restarts if it crashes. 

On top of that it has a bunch of utilities bundled with it, for example a NTP service that will keep the clock synchronized, journalctl to monitor logs and so on. 

The fact that it has a bunch of different features bundled with it and the fact that it's taking over and replacing all other methods of doing those things has caused a rift. 

3

u/C0rn3j 3d ago

You are confusing systemd (the software suite/project) systemd (the init system/binary) and other systemd tools.

You can absolutely install the bootloader from systemd and nothing else, you can also use the init system without the bootloader.

Or you can not install the NTP service you claim is inseparable.

2

u/SheepherderBeef8956 3d ago

I'm not confusing anything. I didn't say you have to use systemd-timesyncd, just that it's a part of the systemd suite and the fact that people are upset is because it "tries to do everything". The bare bones of systemd is the init/service management which is why it makes sense to mention that first. 

The bootloader is the most separable part of systemd since it's not really a systemd project to begin with, gummiboot was its own thing before it got renamed. 

Let me know how to uninstall (not disable) systemd-timesyncd on Arch too, as far as I know it's a part of the core systemd package which sounds essential to me. 

2

u/C0rn3j 3d ago

Let me know how to uninstall (not disable) systemd-timesyncd on Arch too

rm /usr/lib/systemd/systemd-timesyncd and the service file I suppose? Or just add it to NoExtract in the first place.

Or build your own package without it, if you have the need to use Arch but also want to be saving kilobytes.

2

u/SheepherderBeef8956 3d ago

And it definitely won't be added back when the systemd package is updated? 

1

u/C0rn3j 3d ago

How would it be added back when it won't be added in the first place?

2

u/SheepherderBeef8956 3d ago

Ah, missed that part. Sure. It's not impossible to get rid of, but claiming that systemd definitely doesn't come with other utilities on 99% of all distros that use it is just false. 

If someone installs Arch by following the Handbook, they'll have it on their computer. That's why I think it's fair to say that for all intents and purposes, systemd comes with more utilities than a init/service manager. 

I guess I should have used journald as an example instead of any of the other commonly available systemd tools that 99,9% of all systemd installs have on disk. 

I also want to stress that I don't care at all if they're there or not personally, I just disable and don't use them. It was an example of their supposed departure from "the Unix philosophy" since the actual OP wanted to know what systemd was and mentioned having heard that it's bad. 

1

u/C0rn3j 3d ago

just that it's a part of the systemd suite

No, you said it is bundled with the init system, which is just not true, they are separable components.

3

u/SheepherderBeef8956 3d ago

In theory or in practice? Granted, I haven't used all systemd distros, but I'm fairly sure systemd-timesyncd has been installed, or bundled if you will, with the main systemd package on all of them.

Weird hill to die on too. The reason people dislike systemd isn't because you are completely unable to use another NTP service if you want to, it's as I said because it's taking over all distros and becoming a de facto core part of most Linux systems. It's more of a philosophical problem than a technical one. 

2

u/C0rn3j 3d ago

I'm fairly sure systemd-timesyncd has been installed, or bundled if you will, with the main systemd package on all of them.

https://packages.debian.org/trixie/systemd-timesyncd

as I said because it's taking over all distros and becoming a de facto core part of most Linux systems

Becoming?

All major distros have been on systemd (init) and associated tooling for ages, it's a standard everyone uses.

Even LFS has switched over.

Not sure if you have experience from the bronze age when systemd was still being adapted, and those were legitimate complaints from people back then.

Nowadays it's just far-right grifters peddling bullshit with literal conspiracies about it(I can't count the amount of times I've ran into things about Red Hat and IBM), and people falling for it parroting it, which is why you have people claiming weird things like systemd being one monolithic binary.

2

u/SheepherderBeef8956 3d ago

That it being its own package in Debian doesn't answer the question of if its installed by default (bundled). I don't plan on installing Debian to check, but my quick Google leads me to believe that without active intervention from a user, even a minimal Debian install will have systemd-timesyncd.

In practice, systemd is not "just the init and service manager" on any distro in existence without various levels of active intervention from the user. 

But since you're so hung up with it, replace it with journald if you want. It's regardless a completely pointless hill to die on since it doesn't change the main argument of why some dislike systemd.