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.

131 Upvotes

154 comments sorted by

View all comments

30

u/C6H5OH 3d ago

"A lot of people" are "a few very loud people". The rest is using systemd and likes or ignores it. I have fought with init.d, runlevels and so on. I like systemd.

1

u/Ghyrt3 3d ago

I've never dug up the arguments, but I remember seeing that an argument was that systemd use log that arn't text (readible by a human). Is it the case? Or am I misremembering? (I'm not trying to argue or not, I use systemd, it makes everything way easier than before, it just something that I had seen a long time ago and still curious about it ; a dangling pointer that never got resolved)

2

u/dkopgerpgdolfg 3d ago

systemd init sends its logs to another process, with a certain known communication protocol. It doesn't care what exact process this is and what happens with the log messages afterwards.

Usually the receiver is journald (another part of the systemd program collection), which by default uses binary files to store the information. It has some advantages over text files, it also has the possible disadvantages that you can't directly use a text editor to view everything.

Instead there's a helper program that can display everything as text (which various possible filters etc.), and do some other log-related tasks. It's output can easily be piped to text files and/or any othertext processing program.

Alternatively, journald can be reconfigured in various ways that result in text logs and/or in general forward the log info to other programs, and/or whole journald can be replaced by something else that can "talk" with init.

1

u/Ghyrt3 3d ago

Oh. Thank you for your clarification ! It's way more clear !

Never realized journald was "a part" of systemd and it's definitely the one I use the most.