5 ms·
Just about my favorite thing about using Ubuntu on Windows via WSL is that it does not use systemd: it uses a minimalist systemd shim instead that implements en
by ofubd8kc 5y ago
Just about my favorite thing about using Ubuntu on Windows via WSL is that it does not use systemd: it uses a minimalist systemd shim instead that implements enough of systemd's interfaces to keep other essential dependencies working. So on WSL Ubuntu you have init for PID 1:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 9952 764 ? Ssl Jun15 1:06 /init
I'm sick of Microsoft telemetry and I would like to go back to native Linux, but non-systemd options are very limited:
- Devuan is most promising, being 'Debian without systemd', but the project has mountains of work to do and few volunteers to do it, yet so far seems to be managing. I'll be keeping my eye on Devuan....
- Alpine Linux doesn't have glibc, which is a very good thing except that so many precompiled Linux binaries depend on glibc, so you are stuck doing time consuming builds for some programs you will need.
- Gentoo and Artix are rolling releases, so no long term 'you only need security updates' option for servers that just need to do one job and do it well.
EDIT: I wrote Arch instead of Artix, as a commenter below pointed out. Artix is basically Arch without systemd.
- therealjumbo 5y agoArch is primarily a systemd distro. I think it sounds like you should seriously sit down and think about why don't you want systemd, but answer some other questions first. You're running windows with all of its telemetry and longstanding security and performance issues but a different init system on Linux is holding you back? That doesn't seem right, I would sit down and honestly think about what you're trying to accomplish with your machines and why. And why does linux vs windows help vs hinder that goal? Then why does glibc or systemd hinder that goal? I think most people's objections to systemd sound similar to google's objection to systemd. Their objection amounted to "complexity in PID 1" and security. Around the same time they pushed android binder into the kernel, which is just yet another reimplentation of IPC. That spawned some very serious security issues. If they really didn't like the current IPC systems, they probably could have (and should have) implemented one of them on top of AF_UNIX sockets in userspace. So at the end of the day, they apparently don't take "security" as seriously as their objections to systemd would have you believe. What it really boils down to is that they don't like the piece of software for some vague hard to define reason. Ok sure, but that isn't going to help you accomplish your designs since it doesn't inform you on what direction your design should go. I would try to articulate why I don't like it very precisely, and then back it up with data. I can make that argument for windows for example. If I can't do that then my objection was probably emotional and irrational.
- egberts1 5y agoI can’t firewall systemd from making network socket calls. So, YEET! Artix and Devuan, it is.
- zxzax 5y agoI'm not sure what that means or how the second statement follows. You can't firewall the kernel from making network socket calls either, because the kernel is what implements the firewall. Of course the service manager is going to have higher privileges than every other process on the system, because it has to supervise all the other processes.
- egberts1 5y agosystemd makes various network socket calls. Like DHCP
- toolz 5y agoCan you expand on this? Systemd doesn't make network calls, so presumably you mean services started by systemd, which there exists an API specifically so you can do things like start a firewall before the network is brought up.
- egberts1 5y agoOne word, DHCP.
- ofubd8kc 5y agoI compared systemd vs. OpenRC code size in another post, but here is Musl vs glibc code size: $ git clone git://git.musl-libc.org/musl; cd musl $ wc `find . \( -name \*.c -o -name \*.h \) -print` [...] 7 11 94 ./src/unistd/_exit.c 104637 330017 2883975 total $ git clone https://sourceware.org/git/glibc.git; cd glibc $ wc `find . \( -name \*.c -o -name \*.h \) -print` [...] 49 216 1647 ./wctype/wctype_l.c 1389414 6823487 52867225 total So 104,637 lines vs 1,389,414 lines. There are more human programmers on this planet who can audit 104,637 lines than can audit 1,389,414 lines. What is glibc doing that is so terribly useful that it needs to be 13 times the size of Musl? It's just standard GNU bloat. And why does GNU awk (gawk) need to add network socket programming support? Isn't this beyond the scope of what awk does well and does best? Keep adding features, keep increasing the attack surface....
- cyril_r 5y agoDon't forget about Void Linux. I use it daily and it's a pleasure.
- dTal 5y agoIt baffles me that Void is so obscure. It's everything good about Arch, plus a better package manager and larger repositories and no systemd. I even put in on my appliance Raspberry Pis because they boot in 4 seconds. However it is rolling release which it sounds like OP doesn't want.
- zxzax 5y agoThe article has somewhat of a clickbait title. The bug was actually in polkit, which is available on every single one of those distributions you mentioned, and is a dependency of a bunch of other low-level daemons. It happens to be an optional compile-time dependency of systemd, but a distro can ship a version with polkit disabled and just use sudo, if that's what was wanted. WSL is probably very similar to other containerized Linux scenarios, where you might want a small init to function as a sub-reaper within the container. I don't think that is much of a specialized case at all, as far as inits go anyway.
- Seirdy 5y agoSlackware, Void, GuixSD, MX Linux, PCLinuxOS, GoboLinux, and CRUX are some of the more well-known Systemd-less distros. There's also all the BSDs.