← Back to context

Comment by nine_k

2 days ago

Runit is 5474 SLOCs. Most source files are shorter than 100 lines. Works like a charm. Implements an init system; does not replace DNS, syslog, inetd, or anything else.

Systemd, by construction, is a set of Unix-replacing daemons. An ideal embedded system setup is kernel, systemd, and the containers it runs (even without podman). This makes sense, especially given the Red Hat's line of business, but it has little relation to the Unix design, or to learning how to do things from scratch.

I love how people worship UNIX design in Linux circles, especially when complaining about decisions where Linux is catching up with commercial UNIXes, as in the init systems replacements.

UNIX design was so great that its authors did two other operating systems trying to make UNIX done right.

One of the few times I agree with Rob Pike,

> We really are using a 1970s era operating system well past its sell-by date. We get a lot done, and we have fun, but let's face it, the fundamental design of Unix is older than many of the readers of Slashdot, while lots of different, great ideas about computing and networks have been developed in the last 30 years. Using Unix is the computing equivalent of listening only to music by David Cassidy.

  • A project which is intended to be a learning experience in building a Unix variant (in this case, Linux) is a kinda right place for sticking to the Unix philosophy and design, for illustrative purposes.

    Mr Pike has indeed constructed a better OS than Unix; too bad AT&T neither knew how to achieve viral popularity, nor why Free Software (as in GPL) is going to dominate the world. By about 1995, it was already too late. (Something similar happened to Inferno vs Java.)

    Still, the Unix principles of modularity, composability, doing one thing well, and unified interfaces are widely considered very sane, and adopted.

    • Not as much as people in Linux community think, especially those that never used commercial UNIX offerings.

      GPL is on its way out, a good example is that all Linux competitors in the embedded space, including Linux Foundation's Zephyr, none of them has adopted GPL.

      GPL based software is now a minority, almost everything uses licenses that businesses rather reach for.

      6 replies →

  • I think the main problem of Unix today is that it's not Unix-style enough. Too many namespaces with too many non-composable separate APIs on them instead of "everything is a file". Plan9 is more Unix than Unix and that's indeed better. Redox OS, too.

    The Unix security model is mostly useless today, but it seems like something better is possible as an incremental change, and there are projects that do that, like RSBAC.

    • Yes, "everything is a file" but the mouse on Rio is written in stone.

      Aside of that, plan9 wins on the theoretical side, it was a research OS, but in the practical one... it's opinionated.

  • And we've all heard of the linux people, as opposed to whoever is pushing these post-Cassidy OS. Linux isn't where it is because of some imperial decree, it has been winning out in a slow, protracted war for what OS programmers choose when they want to get work done.

    Pike is more than entitled to an opinion, but I think there is some cause-effect reversal at work here. The linux circles aren't people driving the UNIX-love. The UNIX-love is effective in practice - especially the blend of principle and pragmatism that the linux community settled on - so the linux circles happen to be bigger than the most similar alternatives. Better alternatives are going to have to fight through the same slog as linux if they want recognition.

  • This is not about mindless worship, but about the fact that the UNIX design has stood the test of time for this long, and is still a solid base compared to most other operating systems. Sure, there are more modern designs that improve on security and capability (seL4/Genode/Sculpt, Fuchsia), but none are as usable or accessible as UNIX.

    So when it comes to projects that teach the fundamentals of GNU/Linux, such as LFS, overwhelming the user with a large amount of user space complexity is counterproductive to that goal. I would argue that having GNOME and KDE in BLFS is largely unnecessary and distracting as well, but systemd is core to this issue. There are many other simpler alternatives to all of this software that would be more conducive to learning. Users can continue their journey with any mainstream distro if they want to get familiar with other tooling. LFS is not the right framework for building a distribution, nor should it cover all software in the ecosystem.

    • The first version of UNIX was released in 1971 and the first version of Windows NT in 1993. So UNIX is only about 60% older than NT. Both OSes have "stood the test of time", though one passed it with a dominant market share, whereas the other didn't. And systemd is heavily inspired by NT.

      Time flies fast, faster than recycled arguments. :)

      2 replies →

  • Compared to plan9, past its sell-by date. Compared to redhat poetteringware, I will continue to attend services.

  • > We really are using a 1970s era

    1970 Anno Domini no less

    • Making it even more so of a religion.

      UNIX is only an OS with some good ideas, and also plenty of bad ones.

      No reason to stick with it ad eternum as some kind of holy scriptures.

      33 replies →

> Implements an init system; does not replace DNS, syslog, inetd, or anything else.

You're confusing systemd the init manager and systemd the project. systemd as an init system only "replaces" initd, syslog and udev.

All other components under the systemd project are optional and not required, nor is there any push to make them required.

  • >"All other components under the systemd project are optional and not required"

    Name two major distros that use 'systemd init system' but doesn't use the other parts.

> Implements an init system; does not replace DNS, syslog, inetd, or anything else

Neither does systemd its init.

Unknowledgeable people keep confusing systemd the init and systemd the daemon / utility suite. You can use just the init system without pulling in resolved or networkd or whatever.

Systemd is the Unix philosophy of lots of modularity. But because all the systemd daemons come from the same shop, you get a lot of creature comforts if you use them together. Nothing bad about that.

> but it has little relation to the Unix design

It's more like Windows! /duck

  • Hackers design hacker-friendly systems, which are easy to learn and extend. Corporation$ design ops-friendly systems, which are cheap to operate.

    We need both.

  • I have been saying for years that Microsoft would eventually deprecate WinNT and switch Windows over to a Linux foundation. Things seem to be slowly but continually moving in that direction.

    • > switch Windows over to a Linux foundation.

      Though it seems to be sneaking in through application space on a WinNT foundation