sixos: A nix OS without systemd [video]
85 comments
·January 31, 2025sidkshatriya
Can anybody explain to me again why systemd is so bad ? Genuinely I'm not sure anymore: It is chock full of features and it gets the job done. Since it is used in a lot of big distributions it gets a lot of fixes, updates, testing and feature improvements regularly.
Yes, it is maybe monolithic (but so is the Linux kernel). Its philosophy may differ from unix's "get one thing done well" too but integration of various functionalities comes with its benefits.
Some people say it is bloated. The substitutes to systemd are lightweight but less featureful. Maybe some of them will get bloated as they achieve feature parity.
People have a right to build substitutes and replacements -- I believe in the "Let a hundred flowers bloom" philosopy. However I can't understand why systemd is the point of so much disagreement.
ratorx
I think a lot of the arguments I’ve seen stem from “Unix philosophy” style arguments. Also, historically the systemd project has been quite hostile to user requests in some cases, which broke existing workflows for people.
I personally think the basic “service manager” functionality works pretty well and I like systemd overall.
However, the same is not true for a bunch of the more peripheral services (e.g. resolved, networkd, timesyncd). What’s particularly annoying is that there exist mature open source projects that can provide better functionality in a lot of cases which could be used, rather than bundling a half-assed attempt with systemd (eg. unbound, chrony).
gritzko
So, systemd is like "doing Linux services the Microsoft way"
bonzini
> resolved, networkd, timesyncd
None of these are mandatory though. It's up to the distros whether to use them. For example at this point resolved is pretty commonly enabled by default, networkd not at all, and timesyncd is perhaps 50-50 with chrony.
EvanAnderson
It's worth pointing out that Lennart Poettering simply rubbed some people the wrong way in his communication, and that ended up reflecting on systemd, irrespective of the software itself. (I am not making a case that this is good or bad, right or wrong. Just pointing it out.)
smarkov
> People have a right to build substitutes and replacements -- I believe in the "Let a hundred flowers bloom" philosopy.
It's a blessing and a curse. Look at package managers, they more or less all do the same thing, with one primary job of "go download some binary so I can run it", yet there's so many to choose from. Every time you read some Linux guide they have to list 7 different ways of installing the same package. It's stupid, probably even more so for the maintainers of those packages because they have to distribute their package 7 different ways. At least I'm glad systemd has mostly become the standard, so you don't have to also see 7 different ways of creating a service.
McDyver
I think you answered your own question:
> monolithic
> It's philosophy may differ from unix's "get one thing done well"
> it is bloated.
Besides all this, the main issue, for me, is how it managed to spread and ingrain itself into distributions making them dependent on it.
If you want to use an alternative to systemd on those distributions, you are usually on your own, constantly trying to fix it whenever there are breaking changes.
It's good to have options which are simple to replace.
> It is chock full of features and it gets the job done.
So is Windows :)
prmoustache
>Besides all this, the main issue, for me, is how it managed to spread and ingrain itself into distributions making them dependent on it.
I don't think the phrasing is correct. Your choice of word (spread/ingrain itself) seems to imply there is malicious intent. Software do not sneak itself into distribution by themselves. It is the other way around. Distribution creators have total freedom on what components/software they find useful to build their distributions on. If a majority of distros decided to use systemd, that mean a majority of people maintaining distributions found the positive outcomes of using systemd were worth dealing with any disadvantage it may had over using another solution.
kennysoona
> Can anybody explain to me again why systemd is so bad ?
It's huge, messy, has a poor bug and security history, obfuscates things that don't need obfuscating, and is just generally IMO not a clean or efficient implementation. It's a very Windows style solution, very different from the lean and minimal stuff I like to run generally.
The advantages it provides are questionable, and are dwarfed by the issues it has had in the past IMO.
OpenRC perfectly meets my needs at present and my system boots incredibly quickly. When s6 is finished that situation will only be improved.
malwrar
Big monolith that imposes requirements on your system and robs one of the feeling of knowing how the whole thing works?
At least that’s me. I use systemd in most of my installs for reasons similar to yours, but nothing feels more sublime to me than installing a simple init system and a few other daemons for system features I actually use.
ifdefdebug
I think you are beating a somewhat dead cow here. systemd wars are over. It's in most mainstream systems nowadays, but there are also lots of cool projects out there doing different things. Everything's fine, nobody wants to go into those old pro and con flame wars any more.
sidkshatriya
Fair, point taken: Some people are working on systemd replacements because they want to build some cool things in that area. Just like there are multiple programming languages and no one says "Why don't you just use Java/C++" it should be OK to work on Linux systems without systemd and not think too much of it.
FrostKiwi
I think OpenRC is easier to use.
But overall, I agree on this point. Having been a Gentoo purist during Uni time, I'm now full on NixOS. NixOS has fully abstracted away any interaction I have with SystemD, so I don't think it's useful to replace it.
mongol
The good thing about this that it is a Nix OS without systemd, not NixOS without systemd. systemd is so well integrated in NixOS that any attempt to introduce an abstraction to make it pluggable would come with serious disadvantages.
I am all for an alternative Nix OS trying new approaches though, and sixos seems quite innovative.
__MatrixMan__
This is pretty cool. I especially like the better encrypted boot support and that it seems to harmonize better with nixpkgs (https://discourse.nixos.org/t/sixos-a-nix-os-without-systemd...). Curious about the infusions bit.
It not having systemd seems like a bit of a distraction from all of the other stuff that has gone into it.
majoe
You're right. The slides about infusions and the discussion at the end about them were unexpectedly the most interesting part of the talk.
likeabatterycar
systemd already has encrypted boot support. I suppose when you rip something out you have to reinvent all its functions. At that point, any rational person would question the reasons for doing so.
Like removing the transmission from a car out of spite then realizing you need a way to switch gears.
tinyrichard
So removing a transmission and installing/testing/improving a new design or way to solve the problem that hasn't been popularized isn't a worthy cause? How do you think we developed the first transmission? Or the various improvements we all take for granted these days? Yes, systemd can do this, but that isn't a reason to imply developing an alternative that can do the same, albeit in a different way, is irrational.
geocar
> systemd already has encrypted boot support.
It has all of those words next to a bullet point, but the implementation is quite different, and I (like the presenter and probably many many others who are clearly not you) have more confidence in a simple fuse than with systemd[1].
[1]: https://app.opencve.io/cve/?vendor=systemd_project&product=s...
> At that point, any rational person would question the reasons for doing so.
That is excellent advice. The presenter has done something you clearly cannot. You should be rational, follow your own advice, and try to figure out what those reasons are (hint: some of them are actually in the video). That might take a few hours to a few weeks of reading depending on your own experiences, and that's just how life is sometimes.
> Like removing the transmission from a car out of spite then realizing you need a way to switch gears.
When I have a new gadget I want to produce, I'm responsible for all of the code in it, so productivity, reliability, performance, and size are important to me whether I have written the code or I have merely used it in my product. I do not understand the way these things are important to the systemd people (or even if they are important at all), so for me, systemd is off-the-table to begin with.
Or to put it another way: I never needed a car in the first place, because I'm making boats, and I'm not starting with a car just because I like the people who made the engine. Ignoring "solved problems" can just make everything more expensive, and maybe I only know that because I've seen enough people make that mistake, but sometimes this is true.
Keeping an open mind means allowing yourself to be convinced too.
bythreads
Hear hear!, It's like flogging packages and frameworks at a problem without ever considering if it was easier/more efficient to roll your own.
jorvi
NixOS checks/enforces its own reproducibility via systemd in various ways. It seems unlikely to me that replacing something battle-tested with a bunch of self-rolled brittle scripts will make it more reliable.
jeffrallen
Or ripping the combustion engine out to make a better car with electric and then realizing you ALSO don't need the transmission!
imp0cat
And then later finding out that a transmission in an electric car will help you both with top speed and mileage, so you have to put it back.
This is just the same old "systemd sucks, let's rip it out" and then later reinvent everything it provides, because it was needed. Also commonly known as reinventing the wheel, the curse of any IT project.
ethagnawl
It's a shame there isn't a distribution (at least that I'm aware of) which is dynamic and modular enough to allow choosing your own "process manager" at install or even on boot.
mtlmtlmtlmtl
Artix Linux does this. Arch sans systemd, and you have a choice between openrc, runit, s6, dinit, or even some combination of the 4. Any daemon type package will have a -runit/s6/dinit/openrc variant that includes the relevant scripts/configs.
jchw
I believe Gentoo supports multiple init systems, but it's definitely a challenge no matter what.
colechristensen
Gentoo is fun and does indeed give you the choice but…
edoceo
But.... nothing. Gentoo is awesome. I have free KoolAid.
isatty
Compilation is so fast on modern processors that it’s not even much of a hassle.
Portage is the best package manager out of any distribution.
There are no buts. Gentoo is awesome.
lloeki
In a sense, nixpkgs is that.
And AIUI that's exactly that the author refers to by "95% is nixpkgs".
The NixOS part (the module system and modules) is in no small part integration between the init-agnostic nixpkgs and the init system (systemd).
That's what enables this project, as well as nix-darwin (integrates with launchd) and NixBSD.
The traditional way (pacman, apk, apt...) is for packages to carry the init files for the service they package.
null
123nameuser
Why everything is inflated and bloated? It is foundational to our computer systems.* There is alternative way, functional programming, that is much harder to learn than Object-Oriented, but makes cleaner code without side effects. So Six/NixOS is very promising and going to install it when I have learned Haskell first to understand it's foundations more deeply.
* "Can programming be liberated from the von Neumann style?" https://dl.acm.org/doi/pdf/10.1145/359576.359579
otabdeveloper4
> but makes cleaner code without side effects
No, that is an urban legend.
> when I have learned Haskell first to understand it's foundations more deeply
Nix is nothing like Haskell.
Also, the functional and lazy nature if Nix is not an ideological decision, it's a necessity when you have a giant monorepo config for 200000 packages. (Without laziness you'd have to wait for an hour just to evaluate the config options.)
123nameuser
[dead]
null
minhoryang
Is there any video demo of the booting sequence?
mtillman
For those looking for a Linux that works like BSD, https://voidlinux.org/.
cbsks
Also see https://www.gentoo.org/
resonious
Or a linux that actually uses the BSD coreutils https://chimera-linux.org/.
kennysoona
Better yet just use Alpine IMO.
gigatexal
Does it make ZFS on root stupid easy and has ZFS boot environments?
kennysoona
Alpine does. Just boot from the extended ISO and modprobe zfs and install zfs tools.
ssl-3
Nope.
Void generally plays well with ZFS, including kernel updates, but installing on ZFS root is very much a DIY process.
nucleogenesis
Is the XBPS thing kinda like BSD ports?
ssl-3
Not really, no. It's just binary package system, ala apt or apk or whatever.
null
snvzz
A nix OS w/o Linux would be interesting as well.
Microkernel multiserver systems could use more exposure.
Coolbeanstoo
Guix can run on top of the hurd https://guix.gnu.org/en/blog/2024/hurd-on-thinkpad/
lofaszvanitt
The new dead end is approaching, fast.
Slides: https://cfp.cccv.de/media/38c3-community-stages/submissions/...
> On NixOS, either the initrd "secrets" or the software that decrypts them is stored unencrypted on writable media. Ownerbooted sixos closes this loophole without any "trusted computing" voodoo, eliminating all unencrypted storage except for an eeprom whose hardware write-protect pin is connected to ground... coreboot [loads] an immutable pre-kexec kernel from write-protected SPI flash... authenticate the user, decrypt writeable storage, kexec into the post-exec kernel... The speaker runs ownerbooted sixos on his workstations, servers, twelve routers, stockpile of disposable laptops, and on his company's 24-server/768-core buildfarm.
(via https://news.ycombinator.com/item?id=42881772)