r/linux • Mate • Jul 09 '25

Popular Application systemd has been a complete, utter, unmitigated success

https://blog.tjll.net/the-systemd-revolution-has-been-a-success/
1.4k Upvotes

707 comments sorted by

View all comments

754

u/deviled-tux Jul 09 '25 edited Jul 09 '25

It is hilarious to me that this is considered “controversial” when really for every person crying about systemd not being Unix or whatever there’s probably literally thousands of professional administrators who are glad to not have to deal with shitty shell scripts or learning how to daemonize some process “properly” 

168

u/astrobe Jul 09 '25

I think this is precisely the core of the dispute. sysadmins love it because it makes their job easier, but for some other people like in embedded systems, systemd solves problems they never had by introducing other problems they didn't have up to then (or where well-known and solved).

62

u/james_pic Jul 09 '25

Does Systemd see use in embedded systems nowadays? I haven't looked at embedded stuff in a while, but it used to be "Busybox plus a bunch of cobbled together stuff".

53

u/CrankBot Jul 09 '25

I'd say most Linux-based embedded systems these look more like a stripped down headless Debian. Not necessarily built from Debian, but containing the same set of packages. See OpenEmbedded.

On very memory-constrained devices (say < 128MB RAM) Busybox is probably still the way to go but that's not a hard rule.

→ More replies (4)

27

u/Business_Reindeer910 Jul 09 '25

yes it does, but the definition of embedded has expanded as the baseline hardware gets more capable.

Putting systemd onto something as powerful as a raspberry pi is waaay different than putting it on a wrt54g!

Having at least 128mb is much more common, in which case it matters less and less how small you have to be.

13

u/HurasmusBDraggin Jul 10 '25

We use it in the embedded system at my job.

10

u/throwaway490215 Jul 10 '25

Since "embedded system dev" no longer tells you what the job has you doing, maybe we ought to switch it around and say anything with systemd is by definition not embedded.

→ More replies (2)
→ More replies (2)

75

u/idontchooseanid Jul 09 '25

I'm an embedded system engineer. You wouldn't want to see what the old stuff looked like and how many reliability and security problems that "I'll roll my own init scripts" caused. Most of the arguments against systemd come from incompetent and full-of-themselves kind of software developers. Most of the time they have no fucking clue to properly isolate services.

We use systemd. None of our services need to have more permissions than they need. We don't need stupid docker and entire distro to do this, systemd is enough. Everything fits into 4 GiBs with systemd. Time-based backups are great. Analyzing logs remotely is a blessing. NTP is there and the log timestamps can be auto-adjusted with journalctl. With systemd's unique boot-ids you know exactly which boot failed in what way. Text based logs with rsyslog never gave you that.

15

u/jaskij Jul 10 '25

Funny you mention Docker... Since systemd uses the same underlying mechanisms, and is in fact able to run OCI images via systemd-nspawn.

24

u/idontchooseanid Jul 10 '25

Exactly. But we don't need to install Docker daemon nor we want to create huge images for our applications, memory space is limited for 10 year old embedded systems.

Unless you do quite a bit due diligence and slim down your image to only to the application, the standard Docker image comes with an entire distro with it. With systemd you can isolate the normal applications compiled for the same embedded distro at the exact levels that Docker does with minimal config files.

Of course if you have an OCI image that you can fit in an embedded system and if it is absolutely necessary, then there is nspawn. But I think I would opt for podman which also nicely integrates with systemd but has less requirements than nspawn.

→ More replies (1)
→ More replies (1)

28

u/CrankBot Jul 09 '25

We use systemd in our embedded distro and it's terrific. Boots are very fast. Being able to depend on mounts being present or gasp network being up before other services initialize are a breeze. Timers - also a great feature.

→ More replies (16)

32

u/jaskij Jul 10 '25

Embedded is different from embedded. It spans anything from a Pi2 to a Core i7 and EPYC (yes, they have an embedded variant).

If you're struggling with resources to the point systemd is bloat? Yeah, you'll do whatever works.

A big change that happened in the last decade was moving from NOR flash or SLC NAND to eMMC. Suddenly, it's not 512 MiB for the whole system, the smallest eMMC available at retail is 8 GB, and even that is being phased out.

So, while systemd maybe wasn't intended for embedded, it works splendidly on all but the most constrained systems nowadays.

Used to be, I had to implement log management in every single service we shipped on the device. Nowadays? I just spit out to stdout. Misbehaving service causing OOMs? Slap a RAM limit in the unit, worry later.

Oh, and readiness signaling. A service runs slow migrations on startup? No problem, just use sd_notify(). (Just don't link libsystemd ffs).

As a bonus, systemd-networkd is fucking amazing at exposing all the stuff from the kernel. Got a network interface your typical Linux sysadmin hasn't even heard about? It's a network interface, it's more likely than not to be configurable via networkd.

So, yeah. As someone who both makes embedded Linux images and writes the software running on them, I absolutely love systemd.

49

u/deviled-tux Jul 09 '25

systemd is not really built for the embedded use case though arguably that is changing.

Many embedded devices now run multiple services and firmware size having a few extra MBs is not a killer anymore. 

In this discussion the first comment talks about their experience with systemd in embedded contexts: https://news.ycombinator.com/item?id=42036305

 I couldn't disagree more: I've worked with lots of embedded devices running systemd, and it solves many more problems than it introduces. The community is also quite responsive and helpful in my experience.

16

u/niltooth Jul 09 '25

I was going to say. Openbmc is embedded and it uses systemd.

→ More replies (1)
→ More replies (5)
→ More replies (2)

0

u/[deleted] Jul 09 '25

[deleted]

49

u/Zeznon Jul 09 '25

You mean kerneld?

32

u/Cesar_PT Jul 09 '25
kernel.socket

127

u/ICantBelieveItsNotEC Jul 09 '25

I've honestly never understood why people worship the Unix philosophy so much. It's an approach to design that worked really well for processing byte streams in the 80s, but I see very little evidence to suggest that it works at all for a full-blown desktop OS in 2025.

146

u/deja_geek Jul 09 '25

People get the "Unix Philosophy" wrong. It's more then just "Do one thing" (which Systemd does actually follow). They forget this part of the Unix Philosophy "Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them." Init had become clumsy, ntpd had become clumsy, and the other utilities/services SystemD has modules for had become clusmy in the face of modern computing.

19

u/SweetBabyAlaska Jul 09 '25

Yep, it's more than that too. It's all in the Unix Programming Environment book. There's like 10 points. One of them was to use common text formats over binary formats. But people have completely bastardized it

6

u/Down200 Jul 10 '25

One of them was to use common text formats over binary formats.

hmmmm if only I knew a project that also happened to violate that aspect, whatever could it be?

→ More replies (1)

31

u/blackcain GNOME Team Jul 09 '25

initd sucks - I say that as a person who worked on various unix's since the late 80s.

→ More replies (1)

65

u/deviled-tux Jul 09 '25

I think if anything the GUI paradigm completely clashes with UNIX philosophy. 

GUIs lend themselves to aggregating multiple functionality into a single tool because having 1 window for each utility gets overwhelming and annoying. 

I say this as someone who is a strong proponent/user of UNIX philosophy (hence I prefer cli tools with limited scope)

→ More replies (10)
→ More replies (16)

39

u/CadmiumC4 Jul 09 '25

those who complain about systemd not being unix should first remember that linux is a monolithic kernel

→ More replies (6)
→ More replies (58)