1. 20

Old article on the perceived split in a Unix family free from the rise of things like systemd.


  2. 7

    I think it started well before systemd. The issues started when GNU embraced ‘adding options’ to everything under the sun and more. Yes it is convenient but you will be surprised how many of them are ‘missing’ from the BSD’s (and I’m not only talking about longopts themselves).

    The difference is apparent in the way that the BSD equivalents are much smaller in implementation and hence much easier to replace. OpenBSD does that constantly with base tools. They even provided shims to keep Gnome 3 running without systemd parts. All of this leads to a more debuggable, easier to understand system.

    Yes I understand the needs but I’m honestly scared with todays Linux distros that drank the kool-aid. My last memorable systemd interaction was the following:


    System churning through cpu, checking journalctl -f:

    Sep 12 16:10:56 koparo systemd[1]: Looping too fast. Throttling execution a little.

    Googling the log msg (http://lists.freedesktop.org/archives/systemd-devel/2014-March/017835.html):

    if (!ratelimit_test(&rl)) {

    /* Yay, something is going seriously wrong, pause a little */   

    log_warning(“Looping too fast. Throttling execution a little.”);

    Yeah thanks +systemd really informative.

    Basically all of the knowledge all of us acquired to work around issues/debug them has been thrown out the window. Linux is becoming a black box.

    1. 9

      He complains about Linux moving to an API-first approach instead of a scripting-first approach.

      I think it is a valid complaint, but in my experience the issue is that scripting is just terrible. Whenever I have some task which needs automation, I usually open my IDE and write code in my language of choice, because the whole scripting story on Linux (and other systems) is so terrible.

      Bash&friends are such a terrible tool, that I prefer not touching them at all.

      Why should I plug together random binaries with cryptic names from /usr/bin with even more cryptic arguments to a completely cryptic one-liner? Why should I care about all the different ways things can go wrong with shell expansion and escaping things correctly?

      I can write the same in a real language, with a real typesystem in a much more readable fashion and be certain that it keeps working if I move the code from Linux to BSD (or Windows), without having to check whether the features I used are implementation-specific, Linux-specifc or standardized.

      The real question is: Why do even need separate “APIs” for programming vs. scripting. It’s 2015. This should be a solved issue.

      Scripting on Linux today is just programming with an API where call accepts and returns an unspecified stream of bytes. We are abandoning this model in software development, so maybe we should just get rid of it for scripting, too?

      1. 5

        prescient. Having ported pretty much everything over to FreeBSD, I’m finding the world a lot more relaxing and sensible. If you haven’t taken the dive yet, it’s really not bad at all.

        1. 2

          For workstation or server? I find the various BSDs fascinating but I’m mostly looking for a workstation OS and the hardware support in BSD land seems (though I’ve never actually tried to get things working) less “it just works”.

          1. 1

            While I wouldn’t recommend it, I run FreeBSD in a full screen virtualbox on a Mac. I switch back to the Mac for things FreeBSD isn’t good at and stick inside the VM otherwise. I’m pretty happy with it but one has to be willing to put up with some shit to for something they believe in.

            1. 1

              Workstations for me have to have productivity apps like excel (there is no substitute, I’ve tried them all), and only a good terminal aimed at the server farms. To that end I use a MacBook, which is close enough to Unix to let me do work offline.

          2. 4

            I used Linux on the desktop until 2007. Now I use Linux primarily on compute nodes. Every time I have to do some administration, I am surprised how much stuff is moved around and changed. Just some examples (on Ubuntu):

            • When you wanted to change the login message, you would just change /etc/motd. Now that does not work anymore, you have to modify/add scripts to /etc/update-motd.d.
            • CUDA pulled in half a desktop environment as dependencies, including lightdm. So, I wanted to avoid that it got started. Before, you would just switch to normal multi-user runlevel using init 2 and changing /etc/inittab to make it permanent. It took a while to figure out how this is configured now, documentation on this is very hard to find. I ended up adding ‘text’ as a parameter on the kernel command in GRUB.
            • go pprof opens graphs with xdg-open, xdg-open complains that it has no program to show SVG files, I have Chrome installed. Ok, ‘man xdg-open’. No information whatsoever on how the program to use is determined (I found out that it uses .desktop files using strace).

            I understand the need to innovate for users that do not use it as a traditional UNIX. However, the problem is that the chairs are moved around every two years or so and no one seems to write manual pages anymore.

            (I am not hesitant to change, I see that systemd also brings a lot of good things, e.g. monitoring double fork daemons, and being able to restart them when necessary is really great.)

            1. 6

              This I can agree with. The whole systemd debacle has made the whole-OS approach of the *BSDs a lot more compelling in recent years.

              1. 2

                An interesting read.

                However there is one subtle point which is not discussed enough: while UNIX was a great design for a 70s system, is it sensible to keep it unchanged in newer platforms?

                Without entering into specific debates (udev, systemd…), and agreeing personally with the claims that configuration stuff moves every couple of years, isn’t that precisely the price of progress?

                Can a UNIX-like system be as fast, portable, efficient and easy as a modern GNU/Linux?

                Just my two cents, again, without any agenda or will to enter into eternal debates.

                1. 3

                  configuration stuff moves every couple of years, isn’t that precisely the price of progress?

                  I used to think so, back when I used Linux. But after using OpenBSD for quite a few years now, I have to disagree. There are some changes of course, but they’re by and far less frequent or intrusive. And the developers often go out of the way to keep familiar config files & tools intact from the user’s perspective even if the code underneath is completely rewritten. And instead of completely replacing some tool every few years, they polish and improve the old one. That’s progress.

                  On Linux, I come across new shiny tools to replace “old, buggy and legacy” ones, and before the new tool grows mature, someone’s already decided it sucks and needs to be replaced by something new and shinier. Lo and behold, the old new shiny is now buggy, legacy, and horrible. It feels more like running in place in a hamster wheel than actually making progress. Heck, as a user, it often feels more like regress, with all the new learning and new bugs and googling around trying to accomplish what was simple with the old tool. Googling around because Fuck actual documentation says the Linux freedesktop.org community between their rewrites. It would get outdated soon after all… now, if I had an easy way to tell which of the google results are outdated help.

                  1. 1

                    The first time I realised the difference was when I happened to read man pages in OpenBSD and FreeBSD. I was impressed by being able to live without googling everything and actually find the informations I needed carefully explained. If only I could use docker or rocket on *BSD I would finalise the jump

                    1. 1

                      I am going to have to start living on Linux full time in the not too distant future and the idea fills me with terror. I wonder if I can still get by with ion (or even twm) + emacs.

                      1. 1

                        notion + emacs + firefox is what I’ve been doing for a while, it’s helped me avoid a lot of this crap. Archlinux + a well supported linux laptop + super old config files have done very well.