Threads for 0mp

  1. 3
    pw add user mastodon -m
    echo 'export LC_ALL="en_US.UTF-8"' >> /home/mastodon/.profile
    

    I have a feeling that this should go into login.conf(5) instead.

    1. 4

      Just some thoughts on the why, from someone having used FreeBSD quite a bit in the past (but not really so much anymore currently).

      I’d argue that FreeBSD used to be a better desktop system than it currently is because of the initial setup. Once set up FreeBSD can still be very good, because of its extremely active porters community, that pretty much makes every other OS look like a joke on this front. Up to date, stable, quality packages are something nobody talks about when it comes to FreeBSD, but in my experience its by far their greatest for day to day usage on both server and desktop. The nginx package and its options alone leave every Linux distribution far behind.

      In my experience people tend to recommend FreeBSD on the desktop essentially for the proprietary NVIDIA graphics cards drivers. And while for some that might be a requirement, if you are not even using their graphics cards that won’t matter anyways.

      That leaves the incredible amount of ready to install software as the remaining factor. And again, this might not be what you care about, because all you do is use your browser, and an editor anyways, with all the games you like being supported anyways.

      But beyond that I agree with others. You might be better off with a different OS/BSD. Even though I enjoy it not having some quirks Linux does. Like sound coming out the wrong device based on whether it was attached at boot and some other little things that tend to bug me. But you get that with other BSDs as well.

      I think the majority of people using FreeBSD on the desktop on a regular basis either have an ancient installation or a set of scripts/commands to execute, be that one of the guides or something personal. So they are used to it. And there’s just so many great guides to get you started.

      The reason might be that most FreeBSD users don’t use it on the desktop as their daily driver. From my interactions the people that do pretty much only work on ports. People that run FreeBSD on servers on the other hand tend to have some kind of setup scripts, images, etc. made already or see set ups as a one time thing not to care about. Just copy over configs and you are fine. On top of that there’s quite a few tools to define a custom installation for you you, also for desktops. For example some people install FreeBSD and then run pkg install -y desktop-installer && desktop-installer.

      All of that might make better defaults a rather low priority for a large portion of contributors.

      At least that’s my rationale. It would explain why FreeBSD has both criticisms like in the article and criticism overall when it comes to defaults. At the same time it manages to explain why OpenBSD (as well as DragonFly and maybe NetBSD) seem to do a much better job there, despite FreeBSD probably being the best funded - by companies that anyways have their custom versions of FreeBSD or just incorporate tools. Netflix, Apple, Sony, Juniper, NetApp, Trivago, etc. don’t really care about how FreeBSD behaves out of the box despite heavily relying on it.

      I see similar problems in other open source projects, usually ones that are more “beginners only” or “customers only”, where the developers don’t really dog food their products. But with FreeBSD it’s very extreme, because a lot of potential contributors, and even user don’t follow what one might consider the standard way.

      As for packages pulling in a lot of dependencies it’s a similar topic. FreeBSD has ports, which are highly configurable, but there’s also packages. So what a typical port would do is add options and set a lot of them to “enabled by default”. Sometimes like in the nginx example mentioned above there’s even multiple ports that are identical, with different default options, so different packages are being built.

      This is yet another case, of how people use FreeBSD. If you have a serious setup you’ll likely run poudriere and have a couple of config options. On a server that might be build everything with Postgres 14 support, on a desktop that might be build everything with GTK or QT support and for example “Use sndio instead of PulseAudio”. Where Debian and its descendants package everything into dozens of packages FreeBSD makes everything an option.

      And then there’s another cultural thing regarding “scaring away people”. Evangelism never has been a huge topic for FreeBSD. Quite the opposite, for a while people and companies were secretive about FreeBSD usage, as it was seen a competitive advantage. Of course for actual products you’d have to tuck on the license, for services not too much. And which macOS user here thinks about how every time they run grep it’s FreeBSD’s grep, every time they run docker a bhyve instance is started, etc.

      1. 1

        OK, this is quite interesting.

        A few things as general context:

        I often get asked on the Reg why I don’t look more at server distros, or enterprise stuff. There are multiple reasons:

        • partly due to the very considerable difficulty in talking to PRs and marketing folks about this;
        • because I don’t have a testing lab available to me;
        • it’s a long time since I’ve been a sysadmin;
        • benchmarks and pricing comparisons are really irrelevant here, because those aren’t the bases on which such decisions are made;
        • TBH a lot of this would make very dull reading. When it comes down to it, any server Linux can do anything that any other can. There’s no useful way to grade by features; it’s FOSS, any of them has all the features.

        Anyway, in summary, I don’t care about server stuff. It’s not very interesting to me, I lack the resources or time or specialist knowledge to evaluate it.

        But desktops I can test. Here, there are real differences, and in places, big ones. Some distros are just startlingly bad at some everyday things, and, occasionally, others startlingly good.

        I don’t see many reviews of xBSD so I thought I’d do some. I am a competent xNix user with about 35Y of experience. I have experience of about half a dozen different xNixes, counting Linux as 1.

        Saying that…

        I’d argue that FreeBSD used to be a better desktop system than it currently is

        Well, that is startling. What changed?

        Up to date, stable, quality packages are something nobody talks about when it comes to FreeBSD, but […] its by far their greatest for day to day usage on […] desktop.

        That is hard to assess. Frankly, I find the repos for mainstream distros like Ubuntu and openSUSE to be superb, and almost anything that is mainstream and FOSS is just there and just works.

        These days, if it’s not there or it’s not FOSS, Snap or Flatpak probably make it very fast and easy.

        Not on FreeBSD.

        Last night, I discovered that I did not have nano or pico or joe or anything but rancid old Vi in FBSD13.1. I detest Vi. My preferred console editor, Tilde, isn’t in the repos.

        So, there’s a fail straight out of the gate.

        The nginx package and its options alone leave every Linux distribution far behind.

        I know nothing of that. It’s server stuff; see above.

        In my experience people tend to recommend FreeBSD on the desktop essentially for the proprietary NVIDIA graphics cards drivers.

        Odd. Very easy on Ubuntu; fairly easy on openSUSE Leap. Can be a pain on Fedora. Is a pain on Debian etc.

        Not sure why anyone would look to an xBSD for this, but please do enlighten me.

        BTW, I strongly suggest you read my Register reviews on FreeBSD, NetBSD and OpenBSD to get a handle on where I’m coming from, because already, I think your view is wildly different to mine.

        To me, your sentence I quote is equivalent to “people favour Morgan hand-built automobiles because they have wheels!” Well of course they have wheels. All cars have wheels. So what?

        You might be better off with a different OS/BSD.

        Um. I am guessing you are not aware, but I am the FOSS and Linux reporter for the Register. I’ve been using Linux for over 25 years now and have been writing about it professionally since the 1990s. I helped build the first customised cover-mounted Linux distro on a UK computer magazine, and wrote the accompanying 2-month multipage feature on it, about 25Y ago.

        Before that, I mainly worked with SCO Xenix and SCO UNIX, but also AIX and Solaris a little.

        Even though I enjoy it not having some quirks Linux does.

        I always hear that from BSD enthusiasts. I have never understood it.

        For me, all the BSDs are about 100x quirkier and weirder than even the most way-out Linux.

        And there’s just so many great guides to get you started.

        Google never found that one, but it directly reinforces my point about how all the guides you’ll find are weird, quirkly, and will refer to a version several years old and you have no way to tell what works any more.

        For example some people install FreeBSD and then run pkg install -y desktop-installer && desktop-installer.

        Then why the bloody blue blazes doesn’t the installation program even MENTION that?! How the hell am I supposed to know? My advanced psychic powers?

        I see similar problems in other open source projects, usually ones that are more “beginners only” or “customers only”, where the developers don’t really dog food their products.

        Strongly agreed.

        But with FreeBSD it’s very extreme, because a lot of potential contributors, and even user don’t follow what one might consider the standard way.

        That would indeed explain a lot.

        As for packages pulling in a lot of dependencies it’s a similar topic.

        I really don’t think it is. Installing a PDF viewer and it trying to install an entire desktop environment is not OK. That is a broken package IMHO.

        Where Debian and its descendants package everything into dozens of packages FreeBSD makes everything an option.

        This is directly falsified by the comment above, which you acknowledged.

        Evangelism never has been a huge topic for FreeBSD.

        Very true. I don’t think its community realises that right now it faces a make-or-break opportunity, though. Linux is going very mainstream now, to an extent that 99% of Linux users and vendors are totally oblivious to.

        Chromebooks outsold Macs.

        Chromebooks are standalone end-user Linux desktops and laptops. And while the pandemic gave them a huge boost because hundreds of millions of people suddenly needed cheap computers for working and studying at home, and that probably won’t happen again, nonetheless, something ITRO a quarter of a billion people now use Linux as their desktop OS.

        That kind of Linux is influencing desktop Linux.

        We are getting immutable-root, containerised Linuxes with apps delivered in bloated portable packages, run in sandboxes, that the user can’t change or alter in any material way. Old UI conventions are being ripped away, and a lot of users are very unhappy.

        This time, since about 2019-2020, is the single biggest chance for FreeBSD that it’s ever had or ever will have. To scoop up those disaffected Linux users who hate systemd and snap and flatpak and all that.

        But FreeBSD is, metaphorically, standing there oblivious, chewing the cud and gazing into space.

        PC-BSD became TrueOS then got cancelled.

        TrueNAS is oblivious to the fact that it alienated all the FreeNAS users because it doesn’t like to run from a USB key any more. Their sights are set on enterprise sales and they haven’t noticed that they have annoyed and alienated and driven away 100% of their desktop users AND their home-office free users.

        FuryBSD was a good try. It’s dead.

        I am not impressed at all by either GhostBSD or MidnightBSD. They will alienate more people than they attract, I think.

        FreeBSD has another year or 2 to try to win over Linux users alienated by all the weirdness encroaching on Linux now. If it doesn’t, it will never escape its tiny niche.

        I don’t think it ever will. It doesn’t care. It is what it is and you either meet in where it lives, or you can just go do something else.

        The Hello System has a chance, a very small one. I really hope it succeeds.

        I bet most FreeBSD users haven’t even noticed it, and can’t see any importance to it.

        And which macOS user here thinks about how every time they run grep it’s FreeBSD’s grep, every time they run docker a bhyve instance is started, etc.

        I am typing on a Mac. I am aware.

        OTOH, most Mac users don’t use the CLI much. That’s a good thing. They shouldn’t have to. The original Mac didn’t even have one.

        Most CLI type Mac users use Homebrew or similar extensively, meaning they replace the weird half-crippled Apple tools with Linux ones using a Linux package manager.

        Also, macOS has its own unnamed hypervisor, which AFAIK is unrelated to bHyve.

        https://developer.apple.com/documentation/hypervisor

        I do not use Docker – again, server stuff, don’t care – but I wouldn’t be surprised if it used the “official” tool. I don’t know, though.

        1. 3

          Last night, I discovered that I did not have nano or pico or joe or anything but rancid old Vi in FBSD13.1. I detest Vi. My preferred console editor, Tilde, isn’t in the repos.

          If you don’t like vi(1), FreeBSD also ships another editor in base that is very similar to GNU nano. See edit(1). I have to agree though that it is not easy to discover that it exists.

          1. 1

            But man -k editor (or apropos editor) would have revealed it.

            And I never used FreeBSD (but use OpenBSD and NetBSD), but I knew there would be a port for nano: it literally took me 10 seconds to get to it.

            EDIT: after giving it a few minutes, I decided to remove my unnecessary rant, which adds nothing to the discussion.

            1. 1

              Thanks – I will take a look.

            2. 2

              Just to be sure, these are speculations based on just catching up every now and then.

              Well, that is startling. What changed?

              I am not completely sure, but some thoughts are that Unix-like operating systems consolidated to Linux and Linux desktop being a niche FreeBSD became even more a niche. I also think a lot of people somehow got happy with macOS. While it was somewhat common for a lot of open source software to work just fine on any POSIX system, I think a lot of work now has to go into making things work well on FreeBSD, so that’s what people focus on.

              Maybe also hardware got a lot more complex? Raising the bar. And while many companies nowadays also write Linux drivers, very few write them for BSDs (most stuff like enterprise network cards, etc.). Or take bluetooth, which is annoying both on Linux and the BSDs.

              I am not sure but the community also seemingly shrunk, maybe as a side-effect. Probably lots of tiny things. Take video games. Nowadays Steam works fine on Linux, but FreeBSD requires Wine, OpenBSD doesn’t support it, and even if it did it wouldn’t work for 32bit stuff. So now Mono/XNA/… based games, like Stardew Valley, Northgard are what works on OpenBSD. Or take video streaming. Kind of ironic that Netflix won’t work out of the box on the system they use, because of DRM/Widevine which is also something that hinders browsers (and everything Electron based for example).

              There’s also a ton of technologies that essentially are anti-porting. Software depends on one of systemd’s “parts”, or the default way of a service is spinning up a Docker container, or that current trend of using flatpak and snap.

              What also simply went wrong is some desktop BSDs, like PC-BSD/TrueOS, which a long time ago was certainly on par with Linux distributions in the same space, but somehow ended up experimenting a bit too much, making risky decisions that didn’t really work out causing it to now be dead. DesktopBSD also stopped. But I guess that space is now recovering, as there’s some Desktop BSD projects. So maybe it will get better here.

              Anyways, all of that I think simply made developers drop FreeBSD for macOS, which is close enough with its userland (base utilities, bhyve, dtrace, etc.). Since they weren’t too “religious” about OSs in first place they might just have switched, which means there’s fewer people that care about FreeBSD on the desktop. And those who do are fine with how it is for the reasons mentioned in the previous post.

              That is hard to assess. Frankly, I find the repos for mainstream distros like Ubuntu and openSUSE to be superb, and almost anything that is mainstream and FOSS is just there and just works.

              I can’t talk about openSUSE, but I find Debian and Ubuntu a complete mess. Software is either ridiculously outdated (years), has been patched to not work, has non-default flags, and you need a ton of third party sources be it for postges (and postgis), for nginx, for your programming language of choice, etc. Good luck when they are not compatible, and good luck when they drop that service. Also this can be very annoying to debug. I’d argue that it’s a huge part of why Docker is successful as a workaround. And probably also why people use horrible hacks like snap and flatpak.

              Odd. Very easy on Ubuntu; fairly easy on openSUSE Leap. Can be a pain on Fedora. Is a pain on Debian etc. Not sure why anyone would look to an xBSD for this, but please do enlighten me.

              I think you misunderstood me/I wrote that badly. This was to say why people are being told to use FreeBSD over other BSDs, like OpenBSD with which they might be more happy in other regards.

              Um. I am guessing you are not aware, but I am the FOSS and Linux reporter for the Register. I’ve been using Linux for over 25 years now and have been writing about it professionally since the 1990s. I helped build the first customised cover-mounted Linux distro on a UK computer magazine, and wrote the accompanying 2-month multipage feature on it, about 25Y ago.

              Before that, I mainly worked with SCO Xenix and SCO UNIX, but also AIX and Solaris a little.

              So? I am not sure what you mean by that response as it doesn’t seem to have anything to do with the sentence you are quoting. You obviously are better off with a different OS since you don’t seem to be happy with your FreeBSD experience, or am I completely misunderstanding something?

              I always hear that from BSD enthusiasts. I have never understood it. For me, all the BSDs are about 100x quirkier and weirder than even the most way-out Linux.

              I gave you an example that you seemingly just ignore, without giving a single counter example. I also wouldn’t consider myself a BSD enthusiast, as I am writing this on a Linux system. Also does “all the BSDs” include macOS and iOS?

              Anyways, why not use Linux then? I don’t understand where you are heading with that.

              On ChromeOS fanboying: I also think ChromeOS is really good. I think a major part of it is that it basically ignore the Linux world, because it has resources to do so. It just uses Linux for having a (kernel) interface that much software already targets. It’s a bit like with Android. By that standard FreeBSD is widely successful because of macOS, iOS and Playstations, Enterprise grade routers, Netflix, etc. But I guess that’s not what you talk about.

              This time, since about 2019-2020, is the single biggest chance for FreeBSD that it’s ever had or ever will have. To scoop up those disaffected Linux users who hate systemd and snap and flatpak and all that.

              Like you are not interested on servers, I am not really interested in FreeBSD getting users.

              FreeBSD has another year or 2 to try to win over Linux users alienated by all the weirdness encroaching on Linux now. If it doesn’t, it will never escape its tiny niche.

              How so? Why one to two years?

              The Hello System has a chance, a very small one. I really hope it succeeds.

              I bet most FreeBSD users haven’t even noticed it, and can’t see any importance to it.

              I’d think most FreeBSD users interested in FreeBSD desktops enough to read news on the topic did notice it. It was widely mentioned. I am no such user and still read about it many times.

              But: Why is it important to FreeBSD users? Do you mean desktop users? Even then, how is it important to them?

              Also, macOS has its own unnamed hypervisor, which AFAIK is unrelated to bHyve.

              Don’t really know about that. I was talking about Docker, which is the only instance where I’ve ever used a hypervisor on macOS. Also I was talking about FreeBSD users and developers using macOS for their desktop need saying that they don’t really have a reason not to.

              BTW, I strongly suggest you read my Register reviews on FreeBSD, NetBSD and OpenBSD to get a handle on where I’m coming from, because already, I think your view is wildly different to mine.

              I am not really interested in any reviews on them. I don’t think I’ve really shared my views on these OSs or at least it wasn’t my goal. I completely agree with the article, which is why I don’t use FreeBSD on the desktop.

              I do not use Docker – again, server stuff, don’t care – but I wouldn’t be surprised if it used the “official” tool. I don’t know, though.

              You don’t care, but just as a note: Docker on macOS uses xhyve, which is bhyve for macOS, because it’s not Linux, requiring it to use a hypervisor. Fun fact, FreeBSD provides a Linux API.

              I am honestly a bit unsure where you wanted to head with your response. I hope I somehow clarified something, because I wanted to add some context to the problems you mentioned in your original article and follow up on the bits where you asked questions.

              1. 1

                Without going into a quoting frenzy, I will try to answer your general questions.

                You gave the impression that there were specific changes which have made matters worse in recent versions, but you don’t seem to have any. That’s disappointing.

                I agree with you about desktop BSD distros overreaching and thus failing. New desktops, new packaging formats, etc. Bad plan. The path to success is generally to change the minimum you can, and take as much advantage as possible of others’ efforts.

                I find it interesting that you call projects like Ubuntu and Debian – arguably the two most successful non-Windows free OSes there are or have ever been – a total mess. I’d like to hear stuff that is more specific. They work great for me. Ubuntu has been my main OS since the first version and has served me very well indeed.

                As for my talking about experience with other OSes, what I was trying to get at was very simple: I’m not a newbie, I’m an experienced professional with pretty broad experience at that. Whenever I criticize any of the BSDs in any public article or blogpost or whatever.

                https://www.theregister.com/2022/04/22/openbsd_71_released_including_apple/

                https://www.theregister.com/2022/08/10/netbsd_93/

                … I get upset BSD fans saying I’m a fool who doesn’t understand anything. I am not. I suspect I may have broader xNix experience than anyone who has ever attacked me on this.

                I am not evaluating FreeBSD as my potential new OS. (And no, I am not comparing it directly to any commercial variants or products that use it.) I was and am attempting to evaluate it as a potential free OS for general computer users. Whether it’s right for me is irrelevant. I am trying to point out and highlight weak points, and it saddens me that I am apparently failing to get that across.

                You say that you’re not interested in getting users, which is exactly the same thing that I hear from Vim fans when I criticise Vim, or from Emacs fans when I criticise Emacs.

                The core point that this response misses is that any and every FOSS project lives and dies on the health of its community. All projects need new people coming in, trying it, liking it, and sticking with it, whether they fix the code, or hunt bugs, or document it, or talk about it, or simply quietly sponsor it and get other people to do those things.

                Software needs users. Not customers, if it’s free, but users who like it and want it to survive. No user community means certain death, and a rapid transition to being a fossil, maybe occasionally run in a VM for nostalgia.

                Communities need to grow, because if they don’t, then their members age out and die, and then the software dies with them.

                Currently the other 2/3 of the human race is coming online, the digitally disenfranchised billions in Africa and Asia. Meantime, the developed world is aging and childbirth rates are dropping – globally, a good thing for us all! – but bad news for old software that is beloved and maintained by aging people.

                I recently wrote about Chinese Linux distros: https://www.theregister.com/2022/08/30/kylin_the_multiple_semiofficial_chinese/

                It didn’t get many comments or shares. That’s a shame. This is a vital part of the Linux market, and I suspect that Ubuntu now has many many more users in China than in all other countries put together – and it doesn’t know, and it doesn’t take anything much from that distro.

                For example, Ubuntu Kylin will if given a disk to itself install in a complex setup with a boot partition, two root partitions, and a separate data partition. I have not been able to find out much about this but I think it is in an attempt at fault-tolerance; Deepin Linux, the leading Chinese distro, does the same.

                ChromeOS does this, which is one reason it’s almost impossible to dual-boot it with anything else. It’s very important tech but mainstream Western distros are completely ignoring it.

                In a few years, all the big commercial distros are probably going to move to this sealed-down model, where the root filesystem is read-only, apps are in sandboxed modules layered on top, and you can’t change anything you don’t like. SUSE is doing this with MicroOS, Red Hat with Sliverblue and Kinoite and the remnants of Project Atomic, Ubuntu is doing it with Ubuntu Core. Smaller desktop distros like Endless OS are in fact leading the way.

                Once this is normal and accepted and just how Linux works, that will soon be what everyone expects, and there will be no selling point any more in an OS where it isn’t true and it’s not like that.

                That is why I say FreeBSD has a critical window of opportunity now, one which will soon close. Pick up some of the influential Linux migrants now, while it’s still a comparable offering, and before it’s too different and too weird and the window is gone.

                1. 1

                  I get upset BSD fans saying I’m a fool who doesn’t understand anything. I am not. I suspect I may have broader xNix experience than anyone who has ever attacked me on this.

                  That’s quite reasonable. Update: Sorry, I misread that as, “I get upset by BSD fans…”.

                  I am not evaluating FreeBSD as my potential new OS… I was and am attempting to evaluate it as a potential free OS for general computer users.

                  I think the controversial thing is that you aren’t just evaluating it as an OS for general computer users, you are also quite strongly saying that it should be an OS for general computer users. When you write things like this:

                  I feel that these teams need a bit of a kick up the arse, TBH, to be forced to see and register and acknowledge their context and that others don’t share it.

                  You are saying, in quite a strong way, that FreeBSD developers have the wrong goals and should be forced to change their goals to align with what you want. That’s obviously going to rub some people the wrong way!

                  Your justification, if I understand you correctly, is that if they don’t realign their goals then the project will fail. You seem to think that if FreeBSD doesn’t attract a bunch of Linux exiles, then FreeBSD will collapse. But it really isn’t clear why that should be so. Why can’t they carry on doing what they do well now, and leave the Linux users to their ChromeOS/Android fate?

                  1. 2

                    Comments like this are why I try to engage with readers, why I read and respond to the comments on my Register articles, and why I post my blogs here.

                    Because it’s fascinating to me to see how badly people misread what I say, and it’s educational. I am trying to learn from this. Trying to write less ambiguously, to learn what people don’t see or get wrong, so I can avoid doing it again.

                    You have got my comment and indeed my blog post – and note, not an article, ‘cos I am off work with COVID and don’t have much focus or concentration at the moment – almost totally backwards.

                    I am not saying FreeBSD should be anything. I am not saying it ought to change because I say so. I am not saying heed my infinite wisdom and thee shall profit thereby. Nothing like that.

                    What I am saying is that this is, somewhat to my surprise, actually a pretty competent desktop OS.

                    It’s not billed as on, it’s not sold or described as one, and there is bugger all help in the installer in making it into one. But if you are determined and don’t give up, it’s significantly easier than it was just a few versions ago.

                    It offers a good selection of apps, and once you find the magic incantations to install a few things, a tonne of handy extras come in with them. So, by installing just half a dozen packages, not only do you have those apps, but you also have things like volume controls and media keys and a JVM and so on. That you can easily add a network icon to your panel.

                    I am not saying “FreeBSD needs to do all it can to be a better desktop OS.”

                    That is the opposite of what I am getting at, which is:

                    FreeBSD is actually a surprisingly capable desktop OS, and if only there were a few more easy steps in the installer, and a few more hints, this is something that could be accessible and useful to a lot more people.

                    A very common way for people to learn a new OS is to make it their desktop and do their ordinary desktop stuff with it for a while. That is a great way to get familiar with it.

                    As such, this is something it would really benefit the installation program to acknowledge. Give it something like Debian’s tasksel, and make one of the options a tool to install and configure a graphical desktop.

                    As it was it took me about 2-3h of work and Googling and manually installing packages, and there is no need for that in 2022.

                    Some modest changes, to help people a bit further with the installation process, and this OS could win itself tens of thousands more users and some of those people will hang around and contribute. It would be a net benefit for the OS.

                    If you install a desktop, then that should pull in X.org automatically. When you’ve got a desktop, there should be an .xinitrc written automatically for every user account. Sudo ought to be there as standard, preconfigured with the appropriate groups – I mean, Octopkg even expects it!

                    I am not talking about massive changes that are needed for other’s benefits.

                    I am saying that for FreeBSD’s own benefit, the install program should not just build a basic text-only OS and then dump you at a shell prompt, because it is not 1992. That was 30Y ago now.

                    A few basic options – bare server, LAMP server, fileserver, graphical desktop – and when the user picks one of them, leave them with a working ready-to-use OS, complete with SSH configured and running, some seerver packages installed with default configs; or, if they pick a desktop, give them a basic desktop in which they can read the friggin’ Handbook.

                    I just recently reviewed MX Linux and to my own amazement I gave it a rave review. They have a good handbook, and they’re proud of it, and you know how you can tell?

                    Because they put a link to it right there on the desktop.

                    On my shiny new FreeBSD box, there is no visible sign whatsoever of this magical document you are all extolling. No icon, no menu entry, no login prompt that says “welcome to your first login, type handbook to RTFM.”

                    These are not big things. These are not difficult to do.

                    The hard work is already done.

                    What is left is just sweeping up the sawdust, throwing down a welcome mat and leaving a note to tell people where the mains switch is in their new house.

                    I should not have to install my own graphics drivers! That is horrendous! I should not have to write my own lines into init scripts! When I install a package, that should just happen. If there is some deep philosophical objection, then ASK and if the user keeps pressing Return, just do it.

                    1. 2

                      Well, first of all, thank you for a very reasonable reply to a comment that apparently completely misunderstood yours!

                      I am not saying FreeBSD should be anything. I am not saying it ought to change because I say so. I am not saying heed my infinite wisdom and thee shall profit thereby. Nothing like that.

                      That is great. I’m sorry that is how I understood your comments (not the original blog post, just your comments here).

                      Because it’s fascinating to me to see how badly people misread what I say, and it’s educational. I am trying to learn from this. Trying to write less ambiguously, to learn what people don’t see or get wrong, so I can avoid doing it again.

                      In that spirit, here are a few things you wrote that made me think you were saying that FreeBSD ought to change for the sake of its survival:

                      I don’t think its community realises that right now it faces a make-or-break opportunity, though.

                      FreeBSD is a rival to basically every hardcore Linux distro out there. It needs to compete with those, because that’s where the mainstream is now.

                      No users means no money for developers. No developers means you die.

                      1. 1

                        :-)

                        I am getting used to it now, TBH. I have a long way to go; there were well over 20 years between my 2 main full-time stints at doing this.

                        FreeBSD doesn’t have to do anything.

                        But right now is a big chance for it, I think… if it just moves a bit closer to the way things are done on the Linux side of the fence.

                        If it doesn’t do it: well, I would not bank on a healthy future, but then, I don’t for any of us; see elsewhere in the thread. It may just trundle along as it is.

                        Or, maybe, the Hello System will somehow prove to be a big hit, and it’ll gain lots of new users that way. Who knows?

                        But there is a chance. Inasmuch as there’s a mainstream BSD, it’s FreeBSD. It doesn’t have the political agenda I see in NetBSD. And it’s so nearly there that it is frustrating to see that the remaining gap is small.

                        If it had ended installation by asking if I wanted a modern editor, or if I wanted a GUI, and told me what to do next, that would have helped a bit. But nerp – and no mention on the web links I found either.

                        1. 1

                          And it’s so nearly there that it is frustrating to see that the remaining gap is small.

                          I completely understand that. I’m sorry that I misunderstood what you were saying: I’ve re-read your comments and I guess I just emphasised the wrong things in my interpretation.

                          I suppose once I thought I understood what you were saying, I read the rest in the light of that (mis-)understanding.

                          Or, maybe, the Hello System will somehow prove to be a big hit, and it’ll gain lots of new users that way. Who knows?

                          I wasn’t aware of the Hello System before your comments. I don’t pay a lot of attention to FreeBSD - is the Hello System really unknown among FreeBSD users? From a quick glance at their docs, it looks like it answers (or, at least, is intended to answer) most of your complaints.

                          Anyway, in summary, I don’t care about server stuff. It’s not very interesting to me

                          In my defence, I’m the opposite. I don’t really care about desktop stuff. It either Just Works™ or I’m too old to waste my life configuring things. I’ve used Linux since 1996 but it’s always been shit as a desktop: I’m writing this on a Chromebook :)

                          1. 1

                            That is good to hear. :-)

                            And I see the poor tone and phrasing in my comments now, too.

                            As for wanting low-stress computing… I can totally understand that.

                            I have opted for the easy life where computers are concerned for a long time now. It was around the turn of the century, when I saw the needless but mandatory bloat in WinXP on the desktop (themes, video editors, etc.) and the blasphemous horrors of Active Directory on the server side, that I switched to xNix full time.

                            I ran Caldera Open Linux, then SUSE, then Ubuntu. I still run Ubuntu now. I never liked GNOME 2 much – mainly for its poor handling of vertical toolbars – so I liked Unity and I still use it. Since it’s not available on any other distro, for now, that’s kept me on Ubuntu.

                            I’ve worked for both Red Hat and SUSE, where Ubuntu and Unity weren’t really options, so I tried everything out there and settled on Xfce. It needs a bit more tweaking for me but once that’s done, it’s good.

                            But there is a big difference between playing around with an OS to try to get a feeling for it, on a spare machine or in a VM, and having to fight with it to use it as your primary OS. The evaluation part is fun, for me.

                            The sad thing, for me, is that Ubuntu reached a point where it was pretty damned good, quick, just went on and just worked. Then they lost focus. The downfall began with the disastrous HN thread which led to them cancelling all their innovative stuff and just copying RH. https://news.ycombinator.com/item?id=14002821

                            Mark Shuttleworth failed to achieve his goals: although Bug #1 is fixed: Windows is no longer the automatic #1 OS – macOS and ChromeOS displaced it, not Ubuntu.

                            Ubuntu failed to make big headway on mobiles and tablets, too.

                            So he’s given up, AFAICS. He wants to float the company, and the way to make money from Linux is servers. So Canonical now focusses on servers, and the desktop is suffering from neglect.

                            Red Hat is flailing as it always has, and its nasty corporate culture of meritocracy (a word originally intended as satire), NIH syndrome and neophilia is making a mess of desktop Linux. Ubuntu is distractedly copying it.

                            SUSE bought a container company, so now, everything must be containers.

                            There isn’t much direction or leadership or focus on desktop Linux any more, outside of Google, which nobody can be bothered to copy. There are some good projects. I like Alpine, SpiralLinux is impressive, as is Garuda. The one I might actually use myself as my main offering is MX Linux.

                            But they’re mostly small or one-person efforts, or they lack corporate backing, or they have no server offering, and generally are not laying down a big bold path for others to follow.

                            That, ISTM, leaves an opening.

            3. 1

              The nginx package and its options alone leave every Linux distribution far behind.

              Not every: nix is doing well in those areas https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/http/nginx/modules.nix , https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/http/nginx/generic.nix

            1. 3

              FreeBSD packages are built from the FreeBSD Ports Collection, which is mostly bmake makefiles. We have a pretty decent autoformater (portfmt) and a linter (portclippy). There is even portedit, which lets you edit See https://github.com/t6/portfmt for more details.

              Perhaps this codebase could be adapted for GNU makefile as well.

              1. 3

                Sometime ago I wrote a program to live preview mandoc-based manual pages. I use it all the time when I’m working on FreeBSD manual pages.

                https://github.com/0mp/mantra

                1. 1

                  Preview is still on my todo list. Still looking for a good solution that does not require compiling first (because opening the file is not a preview anymore).

                1. 3

                  There is some good points here but I think they’re overlooking security. Admittedly I am an OpenBSD fan boy but FreeBSD, at least the last time I looked at it, lacked a lot of security features that are available in Linux (and of course, OpenBSD).

                  1. 13

                    Would you like to elaborate what security features you were missing from FreeBSD? Perhaps they could be added to the project ideas list on the FreeBSD wiki.

                    1. 3

                      There is some good points here but I think they’re overlooking security

                      I agree. Every non-FreeBSD platform where I try to write compartmentalised software causes me to struggle due to the lack of Capsicum.

                    1. 1

                      Every port in FreeBSD Ports Collection has a distinfo file, which is essentially a lockfile. And you can use it for anything you use for building packages later on, it is language agnostic (in fact you can use it for all the other things like images and fonts as well).

                      1. 2

                        In addition, the ports system has infrastructure for generating the distinfo files from a variety of different languages. For the official ports tree, all of the distfiles will mirror everything in the distinfo files and so you have a source of them even if upstream goes away.

                      1. 5

                        I love the write-up. Not many graphing projects allow you to do real heatmaps (actually grafana and honeycomb are the only ones doing it natively as far as I know), but it’s the most important graph type in my experience. For example if you’re looking at a graph of request durations and can’t tell the difference between one of your slower paths not getting any traffic and everything being 50% faster, you’re going to be in trouble one day.

                        1. 1

                          I agree that it is an exceptionally good how-to article.

                        1. 36

                          A patch to discourage the use of those codes is actually in review at the moment: https://reviews.freebsd.org/D27176

                          1. 1

                            Out of curiosity, does anyone use FreeBSD or any BSD in run software in production? Can you share your use case and why BSD was used instead of something else?

                            I would be interested in reading the software deployment story.

                            1. 1

                              Quite a number of companies, actually. For case studies, you may take a look at the FreeBSD Journal from January/February 2021: https://freebsdfoundation.org/past-issues/case-studies/

                            1. 2

                              Reminds me of FreeBSD’s gnop(8).

                              1. 1

                                Thanks, didn’t know about it. I made unreliablefs agnostic for operating systems and it has a single dependence - the FUSE library, that exists almost everywhere.

                              1. 2

                                Poudriere is one of my favorite tools in the FreeBSD ecosystem.

                                1. 5

                                  If only if they’d support Dragonfly, OpenBSD or even NetBSD, I’d go opnsense.

                                  FreeBSD is, to me, just a boring BSD that lacks leadership and just follows Linux’s decisions. This is why Dragonfly was forked, and as far as I am aware, nothing’s changed.

                                  1. 17

                                    Is it a disadvantage to be boring in the world of firewalls?

                                    1. 10

                                      I’m sorry to ask, but what are you talking about? FreeBSD’s development seems to be completely unrelated to Linux’s, and why would I want an OS I rely on for infrastructure to be exciting? FreeBSD seems to have some of the best engineering (read, not hacking together random stuff until they feel it’s time for a release) I’ve seen in any OS, the system is consistent, the documentation is excellent, the system is reliable and provides the features its target users want. Th only complaint I have with it as a firewall OS is they never kept up with OpenBSD’s changes to PF, which means having to know two syntaxes if using both.

                                      1. 2

                                        Have you heard of wireguard?

                                        1. 4

                                          The highly praised cryptokey routing tunnel system that is available for Linux, MacOS, Windows, Android, iOS, OpenBSD and FreeBSD, as well as having a mostly-portable Go implementation?

                                          No, tell me more.

                                          1. 0

                                            I assume you are referring to the developer who implemented, poorly, wiregard in the kernel scheduled to release in FreeBSD 13, only to have it ripped out because there were major concerns brought up?

                                            Your point?

                                          2. 2

                                            what are you talking about?

                                            About FreeBSD being an unfortunate choice of an OS for opnsense to run on.

                                            FreeBSD’s development seems to be completely unrelated to Linux’s

                                            It isn’t, unfortunately. It copied the worst decisions Linux made, such as the fine-grained locks approach to SMP, and the complexity it brings. This is literally the reason Dragonfly exists.

                                            For that matter, Dragonfly was relatively recently boasting about the superior performance of its network stack relative to both FreeBSD and Linux. An achievement that has nothing to do with putting more man-hours of effort (Dragonfly has few developers, and FreeBSD is a huge community with significant corporate funding), and everything to do with straight up better engineering.

                                            the documentation is excellent

                                            Yet FreeBSD is infamously significantly worse than NetBSD and OpenBSD in documentation. It might compete with Dragonfly on that topic, but only because Dragonfly is a small team which effort is focused on actual development.

                                            provides the features its target users want

                                            Excessively self-fulfilling statement.

                                            as a firewall OS is they never kept up with OpenBSD’s changes to PF

                                            Is one of many reasons I’d rather use something else as base for a router/firewall.

                                            1. 17

                                              It isn’t, unfortunately. It copied the worst decisions Linux made, such as the fine-grained locks approach to SMP, and the complexity it brings. This is literally the reason Dragonfly exists.

                                              That’s a lot of assertion. FreeBSD uses fine-grained locking because it has good performance and fits well with C. Linux uses a mixture of fine-grained locking and RCU. FreeBSD imported ConcurrencyKit a few years back and so now also has a rich set of lock-free data structures for use in the kernel. Dragonfly pushed in the direction of lightweight message passing, but it’s not clear from any of the concurrency benchmarks that I’ve seen that this was in any way better (in general, I strongly prefer message passing and shared-nothing concurrency, but C is a terrible language for trying to use this kind of model).

                                              The reason that Dragonfly exists depends on who you ask. If you ask Matt Dillon, it’s because N:M threading was a terrible idea and 1:1 threading was the right approach. If you ask any of the FreeBSD kernel developers who were around at the time, it’s because Matt Dillon kept committing broken code and shouting at people that they needed to fix the things he’d broken.

                                              For that matter, Dragonfly was relatively recently boasting about the superior performance of its network stack relative to both FreeBSD and Linux

                                              On what kind of workload? Netflix gets insane performance out of the FreeBSD network stack with large transactions by supporting in-kernel fast-paths for TLS (just the crypto, not the control-plane parts) and things like aio_sendfile. Last time I looked, they were getting around double the per-core performance with TLS that BBC iPlayer was getting from Linux without TLS. At the opposite extreme, Verisign was running half of their root servers on FreeBSD (half on Linux, so a bug in one wouldn’t take out the entire root) and servicing a lot more requests from the FreeBSD ones, particularly the subset of those that were using netmap with an aggressively specialised userspace network stack. Netmap is enabled for pretty much all NICs in FreeBSD, it’s available as a patch set for Intel NICs on Linux. DPDK provides similar abstractions now, but Netmap has been in-tree in FreeBSD for over a decade.

                                              FreeBSD was not copying Linux with Jails, it was the first such system to exist in any operating system. Linux now tries to build the same abstractions out of namespaces, cgroups, seccom-bpf, gaffer tape and string. FreeBSD was not copying anyone with Capsicum, which still provides the best set of abstractions for writing compartmentalised applications of any OS. FreeBSD and Linux were both copying the same systems with the TrustedBSD MAC framework and KSMs, but the FreeBSD version is a lot more flexible.

                                              1. 3

                                                Speaking of RCU style things, SMR was introduced for memory and is now also used by vfs.

                                                1. 1

                                                  Dragonfly pushed in the direction of lightweight message passing, but it’s not clear from any of the concurrency benchmarks that I’ve seen that this was in any way better

                                                  Message passing does lead to a more structured design, which has a myriad of benefits. When the difference in terms of development manpower is taken into account, there’s no doubt that the approach Dragonfly took was the better one in hindsight.

                                                  https://www.dragonflybsd.org/performance/

                                                  On what kind of workload?

                                                  The network perf data I was thinking about, took a while to find: https://leaf.dragonflybsd.org/~sephe/perf_cmp.pdf

                                                  Netflix / Verisign

                                                  Yes, there is no doubt FreeBSD is better than Linux, but that is a low bar to meet.

                                                  FreeBSD was not copying Linux with…

                                                  See above. Linux is a mess and should be the textbook example on how not to do software development. FreeBSD has it beat by actually making decisions on where to go and following through.

                                                  It is just that they will many times blindly go forward with what Linux did. The fine-grained locks over message pasing was a fundamental fuckup I simply can’t pretend didn’t happen and makes me sad to think about every time FreeBSD comes up.

                                                  I believe the effort overhead associated to it will in time put FreeBSD (and Linux) very clearly behind Dragonfly in performance / scalability. And that wall will actually be insurmountable due to fundamental architectural issues, not something that hacking in some optimizations will get anywhere close to breaking.

                                                  1. 11

                                                    It must be hard being a contrarian in the face of people who actually do the work. Or not really addressing any of their points.

                                                    1. 6

                                                      Message passing does lead to a more structured design, which has a myriad of benefits.

                                                      Let me fix that for you:

                                                      Message passing may lead to a more structured design, which might result in a myriad of benefits.

                                                      1. 2

                                                        I thought message passing used fine grained locks, just down one abstraction layer

                                                1. 5

                                                  I wish there was something better there than freebsd-update(8) which takes hours (!!!!!) to do a major upgrade. It’s so bad, that the FreeBSD infrastructure people rolled their own custom solution.

                                                  Sadly (?), PkgBase seems dead.

                                                  1. 4

                                                    I just updated 2 systems from 12.2 to 13.0 and it took maybe 20 or 30 minutes to do both systems.
                                                    I don’t disbelieve you, but how is it taking hours for you? Slow internet (I have pretty fast internet)? Slow disks (I have either SSD’s or large zpools that are pretty zippy)?

                                                    (note: I did have to wait about an hour for my local poudriere to rebuild all packages for 13.0, but that gets done anyway, so I didn’t include it in the time it took).

                                                    I agree though, freebsd-update is in general pretty slow, and PkgBase seems like it may never arrive, or at the very least won’t happen for quite a while yet.

                                                    1. 4

                                                      I hate freebsd-update with a passion. It forks a child process for every single file that it compares and it does so sequentially and so it can be very slow on systems with slow single-threaded performance, platforms where fork is slower than normal (including some virtualised environments). It’s also heavily limited by random disk read latency because everything it does is sequential: If it tried to the comparisons in parallel then it could at least take advantage of things that are in the buffer cache, prefetched, or just cheaper to read out of order with NCQ in one thread while another is blocked on I/O, but it doesn’t.

                                                      I’ve often seen it take an hour to upgrade a few hundred MiBs of the base system and then had pkg upgrade multiple GiBs of packages in under a minute on exactly the same machine.

                                                      The logic for detecting changes is also really unreliable. I’ve had freebsd-upgrade leave me with an unbootable system three times. As far as I can tell, it scans the files, detects that they aren’t what it expects, and then patches them anyway.

                                                      I really wish the FreeBSD Foundation would invest in pkg-base. It’s 80% done (it works great for me, but there are some configurations that it doesn’t work well for and there’s some usability that could be improved) but the rest of the work is tedious and involves the incredible pain of touching the FreeBSD build system, so it’s hard to get volunteers to do it.

                                                      1. 3

                                                        On my 24 core Xeon with ~250Mbps Internet and NVMe disks, upgrading from 12.2 to 13.0 took over two hours.

                                                        I also upgraded some more modest 11.4 machines, and those “only” took about half an hour. Unsure about the discrepancy.

                                                        Another machine I have got stuck, and I had to restart freebsd-update(8). The second time worked.

                                                        freebsd-update(8) on FreeBSD, and syspatch(8) and sysupgrade(8) on OpenBSD are relatively new. Most of my life I have been doing upgrade by building from source, so I guess I shouldn’t complain too much, it’s still progress.

                                                        1. 3

                                                          freebsd-update(8) on FreeBSD, and syspatch(8) and sysupgrade(8) on OpenBSD are relatively new. Most of my life I have been doing upgrade by building from source, so I guess I shouldn’t complain too much, it’s still progress.

                                                          I already used freebsd-update back in the day and I stopped using FreeBSD around 2014. It’s not that new.

                                                          Two hours on a Xeon machine seems ridiculous; if you have the time, you should really write a bug report or something for that.

                                                          1. 2

                                                            I’ve certainly had some systems inexplicably take longer than others, but sounds like you have run into some real bad ones. Yikes!

                                                            1. 1

                                                              I’ve got a little Celeron J4125 NUC-style machine that I did the 12.2->13 upgrade on. Took about 10 minutes.

                                                              I’ll be curious to learn what impacted a beefy Xeon or similar reports I’ve seen crop up occasionally.

                                                            2. 3

                                                              20/30 minutes still seems pretty long to me for a base system update. freebsd-update seems optimized to reduce network usage with all its binary diff cleverness, which is still useful in various cases, but for many people it’s a lot less useful than it used to be. Even with my regular ADSL connection just doing a download of the ~220M of the full base.tar.xz + kernel.tar.xz will be faster (at 1M/s it’s less than 4 minutes), and the extract/removal of old tools shouldn’t take more than a minute or so.

                                                            3. 4

                                                              PkgBase is not dead. People are using it as we speak. It’s just hasn’t been enabled by default as there are still some rough edges to be addressed. Here’s a community PkgBase server you may consider using: https://alpha.pkgbase.live/

                                                            1. 4

                                                              The pot framework for FreeBSD jails has also published some OCI-related bits recently: https://github.com/pizzamig/pot-images

                                                              1. 5

                                                                Some other helpful links for FreeBSD Boot Environments that I’ve found over time.

                                                                1. 7

                                                                  I wish the normal upgrade process automatically created a new BE for the pre-upgrade state. Nexenta’s version of apt did this and had an apt rollback command. If that works reliably then you can always upgrade to the new shiny whatever, secure in the knowledge that you can revert if it broke things. You can do the same with FreeBSD, but it’s a lot more manual steps.

                                                                  1. 4

                                                                    Yes it would be great if at least freebsd-update(8) had a -B flag (example) to do the upgrade within new BE.

                                                                    At least the additional steps are very few and not that hard.

                                                                    1. 3

                                                                      I would be willing to do this, if no one else plans on doing it. Any devs here to comment?

                                                                      1. 2

                                                                        Adding support for that to freebsd-update(8) may be an interesting project. It might be a better idea to add this functionality as a separate program instead, because it could be that freebsd-update will be gone in FreeBSD 14 or FreeBSD 15 because of pkg base.

                                                                    2. 2

                                                                      For those building from source, there is beinstall(8) available, which automates installation and boot environment management.

                                                                      1. 2

                                                                        Pity beinstall(8) is only for compiling the sources.

                                                                        Its not an issue on a 16-core AMD Ryzen but its PITA on a 2-core low power laptop CPU :)

                                                                  1. 9

                                                                    Nomad is cool, because it may work with technologies other than Docker containers. For example, Nomad can be used to orchestrate FreeBSD jails: https://papers.freebsd.org/2020/fosdem/pizzamig-orchestrating_jails_with_nomad_and_pot/

                                                                    1. 3

                                                                      And it’s exec command is isolated with a chroot, which makes it super useful when migrating non-containerised workloads too.

                                                                      1. 2

                                                                        Anyone got any experience with that? Seems like a nice way to run plain binaries without having to use docker images (For example when the binaries are compiled with Go).

                                                                        1. 4

                                                                          I used the java one and the exec ones. It worked great, especially if you don’t require any special libraries already in the system.

                                                                          1. 3

                                                                            We’ve been using the java driver in production for over 2 years now, we also us the exec driver for smaller tools, basically shell scripts to backup the consul and nomad database.

                                                                            1. 2

                                                                              I’ve used the exec in presentation demos, where I am running a cluster of nomad VMs, and I have an directory mounted to the host with the apps to run.

                                                                              I could of course host a docker registry in the host, but it’s not worth the hassle; I’d rather have simpler demos with less to go wrong!

                                                                        1. 4

                                                                          It’s already packaged for some operating systems: https://repology.org/project/retro12/versions

                                                                          1. 2

                                                                            Both pmenu and xclickroot are now available in the FreeBSD ports:

                                                                            1. 1

                                                                              Thank You.