Version 256 of systemd Boasts '42% Less Unix Philosophy' (theregister.com) 135
Liam Proven reports via The Register: The latest version of the systemd init system is out, with the openly confrontational tag line: "Available soon in your nearest distro, now with 42 percent less Unix philosophy." As Lennart Poettering's announcement points out, this is the first version of systemd whose version number is a nine-bit value. Version 256, as usual, brings in a broad assortment of new features, but also turns off some older features that are now considered deprecated. For instance, it won't run under cgroups version 1 unless forced.
Around since 2008, cgroups is a Linux kernel containerization mechanism originally donated by Google, as The Reg noted a decade ago. Cgroups v2 was merged in 2016 so this isn't a radical change. System V service scripts are now deprecated too, as is the SystemdOptions EFI variable. Additionally, there are some new commands and options. Some are relatively minor, such as the new systemd-vpick binary, which can automatically select the latest member of versioned directories. Before any OpenVMS admirers get excited, no, Linux does not now support versions on files or directories. Instead, this is a fresh option that uses a formalized versioning system involving: "... paths whose trailing components have the .v/ suffix, pointing to a directory. These components will then automatically look for suitable files inside the directory, do a version comparison and open the newest file found (by version)."
The latest function, which The Reg FOSS desk suspects will ruffle some feathers, is a whole new command, run0, which effectively replaces the sudo command as used in Apple's macOS and in Ubuntu ever since the first release. Agent P introduced the new command in a Mastodon thread. He says that the key benefit is that run0 doesn't need setuid, a basic POSIX function, which, to quote its Linux manual page, "sets the effective user ID of the calling process." [...] Another new command is importctl, which handles importing and exporting both block-level and file-system-level disk images. And there's a new type of system service called a capsule, and "a small new service manager" called systemd-ssh-generator, which lets VMs and containers accept SSH connections so long as systemd can find the sshd binary -- even if no networking is available. The release notes are available here.
Around since 2008, cgroups is a Linux kernel containerization mechanism originally donated by Google, as The Reg noted a decade ago. Cgroups v2 was merged in 2016 so this isn't a radical change. System V service scripts are now deprecated too, as is the SystemdOptions EFI variable. Additionally, there are some new commands and options. Some are relatively minor, such as the new systemd-vpick binary, which can automatically select the latest member of versioned directories. Before any OpenVMS admirers get excited, no, Linux does not now support versions on files or directories. Instead, this is a fresh option that uses a formalized versioning system involving: "... paths whose trailing components have the .v/ suffix, pointing to a directory. These components will then automatically look for suitable files inside the directory, do a version comparison and open the newest file found (by version)."
The latest function, which The Reg FOSS desk suspects will ruffle some feathers, is a whole new command, run0, which effectively replaces the sudo command as used in Apple's macOS and in Ubuntu ever since the first release. Agent P introduced the new command in a Mastodon thread. He says that the key benefit is that run0 doesn't need setuid, a basic POSIX function, which, to quote its Linux manual page, "sets the effective user ID of the calling process." [...] Another new command is importctl, which handles importing and exporting both block-level and file-system-level disk images. And there's a new type of system service called a capsule, and "a small new service manager" called systemd-ssh-generator, which lets VMs and containers accept SSH connections so long as systemd can find the sshd binary -- even if no networking is available. The release notes are available here.
Unix philosophy (Score:5, Informative)
For those who are too young to know:
Do one thing. Do it well.
Re:Unix philosophy (Score:5, Insightful)
Re: (Score:2, Funny)
It's only 42% less Unix philosophy, not 100%, so it's "Do many things. Do it well".
(it can't be "Do one thing. Do it poorly" since everybody knows that Systemd is a beast that does everything)
Re: Unix philosophy (Score:5, Insightful)
It's a monster cancer tumor that just contaminates and causes trouble and breaks backwards compatibility.
Re:Unix philosophy (Score:5, Insightful)
Re: (Score:3)
Re: (Score:2)
https://slashdot.org/journal/2... [slashdot.org]
https://slashdot.org/journal/2... [slashdot.org]
Re: (Score:3)
Basically a root exploit waiting to happen.
Ah yes, because sudo has a stellar track record (Score:2, Informative)
Sudo neither does one thing, nor does it do so well. And has a pretty abysmal track record because of how it's implemented. ..BTW, "unix philosophy" is *simplicity of implementation* over all else. Even over correctness and (especially) consistency.
systemd's run0 uses the exact sort of process isolation that sshd uses, and most of what relies on has been part of core systemd since the beginning -- ya know, being able to launch commands as various users and clean up leftover messes afterwards.
Re:Ah yes, because sudo has a stellar track record (Score:5, Interesting)
The Unix philosophy is about composability. The phrase "do one thing and do it well" is about encouraging composability. Some tools are quite complicated and tricky to get right, eg the LaTeX compilers. And that's as it should be.
The full Unix philosophy is a modular philosophy. The modules are specialized tools in the form of binaries and scripts that all have a simple common interface: STDIN, STDOUT, STDERR and the command line arguments. Crucially, these things can be snapped together like LEGO as long as this common interface is used. And they can be inspected and debugged as long a plain text is consistently used.
Composability means when you snap the modules together the outcome still looks like a module with the same STDIN, STDOUT etc interface. In this way you get infinitely many modules that do higher level things forever,and these modules can be bult in 5 minutes by a nontechnical user of the system, on an as needed basis, no programming necessary. It's your system,you can make it do what you want without any help from strangers.
Some complaints about systemd and many other non-Unix style software that exists on Linux are
1) they make up their own crazy interface that deprecates the STDIN, STDOUT etc interface, so cannot be used as a module to enhance the functionality of the Unix-philosophy operating system through composability.
2) because of 1), they keep adding more functionality internally, leading to bloat and NIH syndrome, because they have to reinvent everything that already exists somewhere else since they have no useful interface to those existing tools.
3) because of 2), there is no quality control and quality improvement over long timeframes, because new stuff gets bolted on, but that new stuff is not best of breed, it's just a half assed implementation by someone who isn't qualified to make specialized software. Furthermore that half assed functionality is constrained by irrelevant software design issues from the base package due to bloat.
4) With a collection of bloated software you get multiple half assed implementations of the same functionality on your system, every time you install a new tool you get a bundle of unnecessary duplication. Contrast with a composable modular system: when you install a module, it does what you ask and no more. You install what you want only. If you find a better module somewhere for some task, you can replace just that module without affecting the rest of your system.
TLDR: the Unix philosophy is letting experts create highly focused software that does a single thing and is world class at it, so that ordinary users can use that thing everywhere they want it, or nowhere if they don't want it.
Re: (Score:2)
Your comment just proves the point. The STDIN/STDOUT/STDERR interface is really bad. It's freeform text with near zero consistency. Sometimes tools have special options to simplify or regularize the output, but often you have to use another text processing tool to parse it and extract the information you want.
The result is combinations that work, but which are brittle and rely on the tools never updating their output too much. Debugging is a pain as there is rarely any facility for error handling or even er
Re: (Score:3)
It's all variations on the same underlying idea of a typed object having properties and methods. Two such objects can communicate and agree on what things they want to share and how to do it in the most efficient, binary, way. An object can always be queried to find out its capababilities, old o
Re: (Score:2)
see you need to understand that the unix "philosophy" is an ouroboros eating its own asshole.
anything unix cannot do, is something that you shouldn't be doing!
simple!
Re: (Score:2)
I generally argue for security at the org boundary, and against security inside the org. The analogy is lock the entrance and windows of the
Re: (Score:2)
I agree. Once they're in the building, it's too late. "Because security" is not a good reason without much more detail.
Re:Ah yes, because sudo has a stellar track record (Score:4, Insightful)
Posting AC, just because.
If you point to -anything- security related to systemd, lets get one thing straight. The code has not been audited or vetted by a third party. It is one huge code blob that has had remote root holes in the past.
For something that is the gatekeeper to secure systems, it never was asked for; it was forced on everyone without any real reason. Yes, it has some cool functionality like setting limits, but a far leaner package could do the same stuff without having to listen on network ports or deal with fundamental UNIX authentication.
run0 seems like something that is just asking for local privilege escalation issues. Has any real security guys checked this out, much less done a formal audit? Most likely not.
Re:Unix philosophy (Score:5, Insightful)
systemd: do everything poorly and be an aggressive asshole about it
Re:Unix philosophy (Score:5, Informative)
systemd: do everything poorly and be an aggressive asshole about it
There's a reason Microsoft hired Poettering away from Red Hat...
Re: (Score:3)
I wonder whether it was all just to have him continue to try to destroy Linux.
Re:Unix philosophy (Score:5, Interesting)
I think it's less nefarious. It seems to me systemd was adopted in order to sell linux support contracts. Microsoft, which runs a shocking amount of linux, hired Pottering because it was cheaper to have him on staff to fix the crap than to pay Redhat.
Re: (Score:2)
Re: (Score:3, Insightful)
Very much this, Redhat almost certainly forced SystemD in to boost its services/support contract income, as it made the whole thing hugely less manageable and added a vector for continuous change.
This keeps a mountain of Windows admins in high paying jobs doing very little, and that was 'the dream' I expect.
Re: (Score:2)
Probably. Systemd is certainly not there to make things simpler and easier to understand.
Re: (Score:2)
That does fit scarily well.
Re:Unix philosophy (Score:5, Interesting)
The primary aggressive assholes on this topic are the ones who insist every distro they don't volunteer for are somehow crazyevil for using systemd and need to switch back.
I'm happier with it and I'm happy that you like sysv or upstart or initd or whatever.
And that you like distros that use them.
But, heck, I remember when sysv init came along and I had to learn new things for that! I still use busybox sysv on 64MB devices - works great for many simple cases.
I do lots of complex stuff with systemd that would otherwise require features added to every single daemon where security is tricky.
Re:Unix philosophy (Score:4, Interesting)
And yet it fails on a random upgrade to start Apache.
The primary aggressive assholes on this topic are the ones who insist every distro they don't volunteer for are somehow crazyevil for using systemd and need to switch back.
Who's an aggressive asshole?
Re: (Score:2)
And yet it fails on a random upgrade to start Apache.
Really, dude?
Have you tried calling technical support?
Re: (Score:2)
+1 Amen
Re: (Score:3)
> the ones who insist every distro they don't volunteer for are somehow crazyevil for using systemd
nah, that's silly.
They think the distros that they *did* volunteer for that use system are also evil!
Re: (Score:3)
I do lots of complex stuff with systemd that would otherwise require features added to every single daemon where security is tricky.
Like what ? Just curious as I've never met a use case for systemd that couldn't be done more simply with sysV+cron
Re: (Score:2)
systemd does 1-0.42 = 0.58 things well.
Now where is my copy of the Hitch Hiker's Guide. It talks about 42 as well ... I recall it mentioning something about something being fundamentally wrong with the systemd. Might be misremembering a detail. :-)
Re: (Score:2)
Also an all time classic of all solid engineering.
Well, the future demise of systemd by even more stupid crammed in there does not concern me. I do not run that piece of crap.
Re: (Score:3)
I moved onto Devuan years ago as my daily driver. I'm test driving the various BSDs
Re: (Score:2)
For those who are too young to know:
Do one thing. Do it well.
Which philosophy is it that enables statements like “now with 42% less Unix Philosophy”?
Headlines; now with 34% more clickbait and 30 grams of bullshit per serving.
Re:Unix philosophy (Score:5, Insightful)
>"Do one thing. Do it well."
That is one of many things, but probably the primary one. The full list by Doug McIlroy (inventor of Unix pipes), summarized, is:
1) Write programs that do one thing and do it well. (Systemd fails)
2) Write programs to work together. (On this, Systemd is questionable)
3) Write programs to handle text streams, because that is a universal interface. (Again, Systemd fails in some ways)
I would add things like plain-text logs, configuration files, and man pages, built in --help, somewhat standardized command-line options, etc. Another is "everything is a file", although that didn't age quite as well in some ways. Others have added more to thoughts what made Unix (and later, Posix/Linux) so successful. Here is a good links:
https://cscie26.dce.harvard.ed... [harvard.edu]
https://linfo.org/unix_philoso... [linfo.org]
Anyway, I can't deny that systemd has brought about some nice things (super-fast booting, additional functionality, and some good security practices, for example). But on the other hand, I also hate it. It tries to do too much and it intentionally breaks long-understood processes, commands, and configuration.
Unix philosophy (Score:3)
Ah, that philosophy? I walked all the way for it, from the Windows camp to the Linux one. Note to systems devs: If I wanted Windows philosophy, I'd return to Windows.
Re: (Score:2)
And he's right.
Linus has no problem with systemd (though he's had his share of problems with Poettering)
And he's right.
You can try to No True Scotsman it all day long, but at the end of the day, systemd is now the de facto linux philosophy.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Any Linux distributions not using systemd? (Score:2)
Re:Any Linux distributions not using systemd? (Score:5, Informative)
Gentoo, Funtoo, Devuan just off the top of my head. Also Slackware if I'm not mistaken.
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
Similar in Funtoo (my daily driver) there's a sys-apps/systemd-tmpfiles - it's a shim used for those programs that expect to have *some* systemd stuff or else they refuse to work.
Re: (Score:2)
This kind of shit is the exact reason I switched to BSD after using linux exclusively from 1998 to 2010.
Re: (Score:3)
Re:Any Linux distributions not using systemd? (Score:4, Informative)
Debian can still be installed without systemd, but Devuan is a better choice.
Re: (Score:3)
Re: (Score:2)
Interesting. One more distro where sanity prevailed.
Re:Any Linux distributions not using systemd? (Score:5, Informative)
100% less systemd philosophy (Score:4, Interesting)
That's what my Linux systems have.
Re: (Score:2)
Same here.
Re: (Score:2, Insightful)
Versioned Files Is My Dream Project (Score:3)
I've been working on this as a hobby, but it's far from being anywhere near ready for production. At the moment, you can mark a file to be versioned and any changes to that file will generate a new version. In the future, I'd like to make use of deduplication so that each version only stores the data blocks that have changed. I'm hoping this project will help me transition to a position as a full-time Linux developer and maybe even allow me to work on this project full-time so that I can accelerate my progress.
Re: (Score:3)
Re: Versioned Files Is My Dream Project (Score:2)
No, it shall be called 'Total Recall' :)
Re: (Score:2)
I do this now and it's not that hard, at least for text files that I edit which is usually all I care about versioning.
mkdir ~/.vi # do this once
vi ~/bin/edit ; chmod 755 ~/bin/edit # create this file
#!/bin/bash
VIDIR=$HOME/.vi
for a in $*
do
f=`basename $a`
i=1
while [ -f $VIDIR/$f.$i ]
Re: (Score:2)
Re: (Score:2)
git doesn't preserve ctimes. fail, fail
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
That's adorable.
Saying "I do that" when the discussion is versioning at the file level layer rather than the application file layer is .. well, cute I guess.
Down to... (Score:2)
How much now? 2^-256 sounds about right.
Finally (Score:3)
Now if Pottering had only come out and said that in the first place. We all knew.
Re: (Score:2)
> yet the same people who praise sysv-init over systemd also praise x11 over wayland
What has sysv init got to do with anything?
There are plenty of alternative to systemd that are not sysv init.
As for Wayland, yes, it does try and do as little as possible but it's so basic as to be almost unusable at this point so X11 still wins. YOu cant even compare Wayland to X11 as Wayland is a design specification, to be implemented by real code. All thats needed is to have someone create a proper Wayland composit
Re: (Score:2)
That's fine. Not liking something because it doesn't meet your requirements is legitimate. Whining about some unix philosophy while happily ignoring it in another package is hypocritical and shows you care more about culture wars than any legitimate complaints.
follow the money (Score:3)
Where does Poettering work again?
That's truly sad. (Score:5, Insightful)
Nice Trolling Slashdot (Score:5, Informative)
There's nothing about "42% less Unix philosophy" in the announcement.
What happened, is one Systemd developer reposted the release announcement to Mastodon and added the "42% less Unix philosophy" line to troll the folks who always complain about Systemd on those grounds.
So basically random people trolling on social media is making it into /. stories now.
Re:Nice Trolling Slashdot (Score:5, Insightful)
But they aren’t wrong.
Re:Nice Trolling Slashdot (Score:4, Informative)
Disinformation
Why would you think it's disinformation? Systemd objectively defies the UNIX philosophy.
Re: (Score:2)
There's nothing about "42% less Unix philosophy" in the announcement.
The title of the article from The Register is "Version 256 of systemd boasts '42% less Unix philosophy". If anyone is trolling, it's The Register, so complain over there.
Re: Nice Trolling Slashdot (Score:2)
Nearly no one complains about the actual init part of systemd, and you know it.
What they complain about is how it's trying to rewrite every single tool that sits between the user and the kernel, and by doing so they are:
Breaking compatibility with other existing tools, forcing people to use other systemd tools or rewrite their previous tools.
Modifying default behaviors (and badly documenting it) resulting in insanely hard to debug failures.
Introduce massive interdependence which make it way harder to find o
Only a few versions more ... (Score:2)
... and Poettering will reveal his new OS, Lennux.
No kernel, no utilities, no shells, no X, only systemd, and bundled general software which will be replaced by systemd versions at a later date.
I heard some technological species in the Delta quadrant or so is already investing in it.
Re: (Score:2)
Re: (Score:2)
So, systemd+emacs = complete OS? :)
Re: (Score:2)
Re: (Score:2)
LibreOffice merges with systemd to create systemd-word and systemd-spread
THE HORROR
"Those who don't understand UNIX are doomed to rei (Score:5, Interesting)
If nothing else, systemd is... (Score:4, Insightful)
More proof that Zawinski's Law is immutable truth.
Re: (Score:2)
Re: (Score:2)
If I had to put money on it, I'd bet on "yes, eventually".
More unnescesary, half-arsed features... (Score:2)
Under Microsoft Control (Score:5, Interesting)
Debian could pick things up again from where Devuan is. Meanwhile I'll stick with Devuan.
Linux becoming Windows? (Score:2)
I'm glad (Score:2)
He's finally come out of the closet as anti-Linux. I'm completely sure that his long term plan is to replace every component of a Linux distribution with his own philosophical/engineering ideal. And the fucking morons in charge of every other distro just let him keep eating the universe.
Right, that does it. (Score:2)
Now I know their exact motivations and goals, I’ll start happily making sure my systems going forward reach towards 100% less systemd junk.
And there I was thinking: "Well, I hate it but I'll just live with it to keep life simple".
Off to Devuan, oh and I've been planning to have a go a Linux From Scratch for decades now and they too have a systemd free build.
Oh and I might finally say hi to Slackware, been using GNU/Linux since 1998 and only toyed with Slackware once.
Why? Why will I do this?
Because I b
Re: (Score:2)
OK .. what was the issue, and impact? We (or at least I) need to know how seriously to take your comment.
Re:I ran into a systemd bug (Score:5, Insightful)
The real question is why the init system has a say in my dns queries.
Re: (Score:3)
The real question is why the init system has a say in my dns queries.
Why the system, or why systemd? You system needs to do DNS queries. As to why systemd did it, you can simply google that:
"A new NSS module "nss-resolve" has been added which make be used of glibc's own "nss-dns" to resolve hostnames via systemd-resolved. Hostnames, addresses and arbitrary RRs may be resolved via systemd-resolved D-Bus APIs. In contrast to the glibc internal resolver systemd-resolved is aware of multi-homed system, and keeps DNS server and caches separate and per-interface. Queries are sent
Re: The source of sudo (Score:4)
I prefer 'su -', or if not possible I just do 'sudo bash' so I actually can do something.
Re: (Score:2)
Same here. I do not use sudo. The idea is too broken.
Re: (Score:3)
Quite. I always considered sudo a security risk.
Sane admins either use su, or write a setuid program in C.
I have no sudo installed on my systems.
Re: (Score:2)
Indeed. sudo is like a toy made for people that are not serious about system administration.
Re: (Score:2)
I see what you did there :D
Re: (Score:2)
Whats broken is the terible man page that makes everyone just use the default and think that sudo is just a way to make things run as root :D
sudo is a method for implementing and managing the wheel. A concept that Linux didnt really have for quite a while.
Re: (Score:2)
Thinking that sud is just a way to run as root means you dont understand sudo.
sudo is a means to manage the wheel.
It's EBNF config file is simple enough but its documentation is so poor as to confuse the heck out of me who understands EBNF.
Re: (Score:2)
What?
> Linux BIOS
Huh?
> SystemD was Linux attempt to "beat" Solaris
No, it was Poetterings attempt to boot his laptop a bit faster.
Re: (Score:2)
> It's over.
Yes it is
> You lost.
No we won.
> Move on.
We have:
Devuan et-al, s6, runit.
We are just trying to save the rest of you from your sinking ship.