1. 1

    Good article. A little bit confusing that most of the config told you hat to put in the config files, but the rc.conf configuration gave you a list of commands to run to modify the files. This bit in loader.conf makes me slightly nervous:

    # Lets not wait on the boot loader
    autoboot_delay=0
    
    # I know that my root will never be on a USB disk, if it is we went sideways somewhere around albuquerque 
    hw.usb.no_boot_wait="1"
    

    Saving a few seconds in boot time in exchange for making it harder to recover if you break everything doesn’t sound very sensible. The article suggests using ZFS on root, which means that you have ZFS boot environments automatically and you can roll-back any update from the loader screen if you create a new BE before you do the upgrade (this is really, really, good practice!). Unfortunately, with the autoboot delay set to 0, it’s almost impossible to then select the previous working configuration.

    1. 1

      I usually set autoboot_delay to 2 which is quite reasonable for delay and usability.

    1. 4

      Without any third party software or solution as plain image and video files per ‘event’ directory.

      Along with ‘tags’ or description in the directory name.

      Like that:

      2019
       +- 2019.01.15.someones.birthday.FUN.MARTIN.ferrari
           -- 2019.01.15.1450.jpg
           -- 2019.01.15.1457.MP4.mkv
           -- 2019.01.15.1510.jpg
      2020
       +- 2020.03.13.coronaparty.COVID-19.SARS.YOLO
           -- 2020.03.13.1450.jpg
           -- 2020.03.13.1457.MP4.mkv
           -- 2020.03.13.1510.jpg
      

      Its the least PITA way I know.

      Automatically/batch convert using this way:

      https://vermaden.wordpress.com/2019/06/12/manage-photography-the-unix-way/

      Browse/grep(1)/filter using this way (Query Functions):

      https://vermaden.wordpress.com/2018/09/15/ghost-in-the-shell-part-3/

      Hope that helps.

      1. 1

        Any opinions on a good home setup for ZFS? (With ECC DRAM)

          1. 1

            Depends what you already know / want out of it - I’ve had some success with FreeNAS, but it assumes quite a bit about what you would like.

            1. 1

              I am mostly interested in protecting my data. Then there is cost. What are the options on the low end of cost?

              1. 2

                ECC DRAM is a complex set of standards, and it’s very easy to burn money on incompatible motherboards, especially at the cheap end of the scale.

                Ex-server hardware tends to be dirt cheap for this kind of thing (especially right now). If you can figure out a way to run it without the noise driving you mad (maybe fitting watercooling?), that’s going to be the cheapest way to get a compatible ECC setup.

                1. 2

                  I’ve had good luck with HP microservers. I described it a while back, here: https://lobste.rs/s/j1qohm/silent_fanless_freebsd_desktop_server#c_rte6ka

            1. 1

              Regarding gnu-watch. There’s also cmdwatch, which does the same and has no dependencies.

              1. 2

                Assuming you want to ‘watch’ df -g command you can also do this without installing anything:

                # df -g
                # while sleep 1; do !!; done
                
              1. 2
                1. 1

                  Welcome :)

                1. 10

                  A lot of the points in this article aren’t really technical advantages IMHO, but rather “I prefer the way FreeBSD does things”. This is fair enough, but … not a unique technical advantage FreeBSD has over Linux.

                  Most most purposes, Linux and FreeBSD are roughly equivalent technically, just as Debian and Arch Linux are equivalent. The implementations differ, but at the end of the day, both implementations work well, with minimal user-visible differences. Much comes down to what fits best with your goals. For many purposes, both fit equally well.

                  Some specific notes (which got a bit longer than expected):

                  • I think the “clean separation” in /usr/local is not really all that useful in practice, and the choice of /usr/local to install packages means there is no longer a logical place to install self-compiled software (NetBSD’s /usr/pkg makes more sense, IMO).

                    Debian issues are, well, Debian issues, not Linux ones. As the article points out, many Linux distros don’t frob with packages like Debian. Comparing FreeBSD to dozens of Linux distros is easy, because you can always find a fault in some distro.

                  • Both Linux and FreeBSD are stable systems; FreeBSD had a leg up here in 2000 or so when Linux was a bit less mature, but those days are long gone (and as I’ve written about here before, the introduction of pkg-ng was a mess of segfaults and other errors; not very stable).

                  • The documentation in FreeBSD is indeed pretty good, and I learned a lot from the handbook back in the day. Many man pages also tend to be a bit better (let’s not even start about GNU info), but the Linux docs aren’t all that terrible these days; certainly a lot better than 15 years ago, and the Arch wiki is more or less the de-facto unofficial handbook these days (most stuff can be applied to other Linuxes as well).

                  • FreeBSD ports is essentially just a package build system; pretty much all Linux distros come with something similar, and it’s not really that unique to BSD. The key difference is that in FreeBSD ports are much more user-visible, but compiling everything from ports strikes me as a massive waste of CPU cycles to be honest. The technical implementation of ports is … well … just look at bsd.port.mk. I’ve done some hacking on this back in the day, and it wasn’t a lot of fun.

                  • ZFS works just as well on Linux as FreeBSD, and has for many years now. The GPL/CDDL incompatibility make shipping it by default and running it on root a bit harder, but these are fairly minor details, IMHO. There was a time when ZFS ran well on FreeBSD and Linux support wasn’t quite mature yet, but that was a decade ago, or longer. Dtrace runs on Linux as well.

                  • I much prefer FreeBSD’s /etc/rc.conf which gives a good single overview about what a system is running in a single file. I wish the defaults would be a bit better though (e.g. maybe not start sendmail by default, requiring not just one but a bunch of variables to disable). I also wish it would be a proper service manager instead of this PID-file hackery.

                  • FreeBSD jails are neat and were a bit ahead of the curve on the whole containers thing. I think the part that’s really missing is the management: you’re expected to extract the base.tar.gz in your container, mount /dev, and do all sorts of other setup. Yeah, you can automate it with scripts and whatnot, but compared to docker pull it’s a lot of work. I think it’s the easy distribution and UX part that really made Docker popular. Bastille looks neat, but as far as I can see it doesn’t do distribution of images. There was another management tool as well (I forgot the name), which has/had the same shortcoming.

                  • bhyve is cool; Linux has kvm/qemu; is there really any difference?

                  • The three different firewalls in FreeBSD reminds me of the Hollywood “zomg he just hacked through 3 different firewalls!” What’s the reason for having 3? I don’t really see the point, and find it rather clashes with the “clean base OS”-doctrine.

                  • Linux can be tuned as well, this is hardly unique to FreeBSD.

                  • GEOM is really neat; this is probably the only clear technical advantage listed here.

                  • Linux can do event auditing.

                  1. 5

                    I think the “clean separation” in /usr/local is not really all that useful in practice

                    Its VERY useful. No matter how fscked up your packages are, just do these and you are CLEAN and still have fully working system:

                    # rm -rf /usr/local /boot/modules /var/cache/pkg
                    

                    Both Linux and FreeBSD are stable systems.

                    After systemd became the king of init system in Linux land Linux started to behave very unstable and unpredictable. Maybe you have different observations. I made them using RHEL/CentOS systems.

                    let’s not even start about GNU info

                    Little off topic but this is my way to cope with GNU info pages:

                    # info ls | less
                    

                    FreeBSD ports is essentially just a package build system; pretty much all Linux distros come with something similar

                    Gentoo like systems, yes. RHEL like systems and its clones, nope.

                    ZFS works just as well on Linux as FreeBSD, and has for many years now.

                    Nope. Linux still does not have ZFS Boot Environments out of the box. There are some guides, some third party tools but nothing consistent. Even latest Ubuntu 20.04 does not support them while having Root on ZFS.

                    maybe not start sendmail by default

                    100% agreed. The sendmail is PITA in FreeBSD. I hope it will die in FreeBSD land soon with 13 version.

                    FreeBSD jails are neat and were a bit ahead of the curve on the whole containers thing. I think the part that’s really missing is the management: you’re expected to extract the base.tar.gz in your container, mount /dev, and do all sorts of other setup. Yeah, you can automate it with scripts and whatnot, but compared to docker pull it’s a lot of work.

                    Yes. This is the reason why Docker sky rocketed and Jails are still just Jails. Tooling.

                    bhyve is cool; Linux has kvm/qemu; is there really any difference?

                    Bhyve is cool, fast and nice but its still pretty young so while KVM provides mature live migration in oVirt like environments for example, the live migration from what I remember is just a proof of concept or very early implementation.

                    The three different firewalls in FreeBSD reminds me of the Hollywood “zomg he just hacked through 3 different firewalls!” What’s the reason for having 3?

                    Agreed. This is pointless really. IPFilter should be gone by now and FreeBSD should focus on either PF or IPFW. IMHO PF should be cross BSD project to have one simple firewall across BSDs but I am dreaming here. Even FreeBSD PF is different from OpenBSD PF.

                    GEOM is really neat; this is probably the only clear technical advantage listed here.

                    Yes its really nice, once you get used to it its pretty strange that its not available anywhere else …

                    Hope that helps.

                    Regards.

                    1. 2

                      FreeBSD ports is essentially just a package build system; pretty much all Linux distros come with something similar

                      Gentoo like systems, yes. RHEL like systems and its clones, nope.

                      Yes, this is one of the primary reasons I switched to Arch from Fedora.

                      GEOM is really neat; this is probably the only clear technical advantage listed here.

                      Yes its really nice, once you get used to it its pretty strange that its not available anywhere else …

                      How exactly does it differ from mdadm/luks/lvm?

                      1. 1

                        Check from page 30: https://is.gd/bsdstg

                        1. 1

                          Access/control of classes through use of providers/devices in /dev directory.

                          So instead of running (say) mdadm, you do something with /dev?

                          Transparent filesytem journaling for ANY filesystem with GJOURNA

                          Now that is interesting.

                          1. 1

                            Not sure where to start … You can create 3 mirrors of two disks or partitions … then make 3-way stripe of these … (you get RAID10 from 6 disks) … and if you would create 4 of these, then you could create RAID5 on top of that making it RAID105 (maybe stupid idea) … then create gjournal on that device (for journaling) and then FAT32 filesystem on it and then expose that ‘storage’ to another FreeBSD server (or several) using GEOM GATE mechanism … without any iSCSI daemons or other third party tools.

                            That is just one example (probably not the best one).

                            GEOM is like LEGO for various storage possibilities/features on FreeBSD.

                            Its all about layers, you just put one layer on top of another …

                            1. 1

                              Its all about layers, you just put one layer on top of another …

                              That’s what you do on linux anyway. mdadm creates a new disk whcih you can use for luks, which you can use for lvm.

                              and then expose that ‘storage’ to another FreeBSD server (or several) using GEOM GATE mechanism

                              Hm, now that is interesting. In my experience, setting up networked file systems on Linux a bit finicky. How does it handle the multiple writers case? E.g. when two writes need to modify the same block on disk.

                              1. 1

                                Hm, now that is interesting. In my experience, setting up networked file systems on Linux a bit finicky. How does it handle the multiple writers case? E.g. when two writes need to modify the same block on disk.

                                Depends how you implement it.

                                If you have simple 1 x SERVER <-> 1 x CLIENT then this problem does not exists.

                                If you have 1 x SERVER <-> N x CLIENT then you can either use some HA cluster on these CLIENTS with non-clustered filesystem (UFS/ZFS/FAT32/…) and only single CLIENT will write or put some clustered filesystem there (like GFS2) and then the cluster logic will decide which CLIENT writes first. I do not know any clustered filesystem such as GFS2 for FreeBSD thou. There are distributed Minio, LeoFS, LizardFS, CEPH, GlusterFS but from what I know each of them require single DEV single CLIENT attachment and then data is presented on network, not directly to block devices.

                                Not sure if that helps.

                                1. 1

                                  Oh, so GEOM GATE only works for one mounter? That is, only one client can mount the underlying block device.

                                  1. 1

                                    Its like NFS, for one, for several or for entire network.

                                    Here is an example from ggated(8) man page:

                                     The format of an exports file is as follows:
                                    
                                           1.2.3.4         RO      /dev/cd0
                                           1.2.3.0/24      RW      /tmp/test.img
                                           hostname        WO      /tmp/image
                                    
                      2. 1

                        Yeah, rm -rf /usr/local is a small advantage I suppose, but it’s a fairly minor detail, IMO, just like the ZFS boot thing. I mean, do you really want to base your entire OS choice on just that? There are many far more important considerations, I think.

                        Both Linux and FreeBSD are stable systems.

                        After systemd became the king of init system in Linux land Linux started to behave very unstable and unpredictable. Maybe you have different observations. I made them using RHEL/CentOS systems.

                        I don’t really want to start a YASA (“Yet Another Systemd Argument”), but suffice to say that systemd is also not my most favourite piece of software in the world, and that I, too, am not always impressed by the attitude of its developers, but at the end of the day … it does work. I’ve certainly had weird issues, but in all the years I’ve used it (including on quite a few servers) I’ve only really had two issues, and none were that critical. I’ve had far more issues with pkg-ng, for example.

                        I currently use a combination of Void and Alpine Linux, partly because it comes without systemd. But that’s really just a personal preference thing. and I think that “systemd made Linux very unstable and unpredictable” seems rather exaggerated to me.

                        1. 1

                          Yeah, rm -rf /usr/local is a small advantage I suppose, but it’s a fairly minor detail, IMO, just like the ZFS boot thing. I mean, do you really want to base your entire OS choice on just that? There are many far more important considerations, I think.

                          There are many things that ‘got me’ to use FreeBSD instead of Linux in most cases. I can not state all of them here of course (I probably will on a blog post some day). Its one of many. Things I need work on FreeBSD so moving to Linux would not give me anything …

                          … it does work. I’ve certainly had weird issues, but in all the years I’ve used it (including on quite a few servers) I’ve only really had two issues, and none were that critical.

                          For most of the time it works, but its weird crashes and problems are very problematic to debug. For example after yum update on CentOS 8.0 from VMware here:

                          https://imgur.com/a/ZURPn1G

                          I was not able to determine what was wrong. I reverted this VM to earlier snapshot made yum update again and everything worked like a charm. Also recently my buddy needed to setup puppetserver on CentOS 8.1. The systemd startup script was not able to start the service. He then tried on RHEL 8.1. Worked. CentOS 8.x is basically the same as RHEL 8.1 (red hat logos package is different and /etc/redhat-release file is different) but for some reason it does not work on CentOS … and he was not able to determine the cause of the problem. He finally went with Ubuntu (as RHEL is paid and Ubuntu is for free). Yes Ubuntu also uses systemd but at least it worked.

                          With rc.d(8) on FreeBSD or with old Linux init.d system I was able to debug it very easily with sh -x /path/to/startup/script.sh start. Now while systemd offers its own debug options its nowhere near that simple and obvious to debug problems.

                          I’ve had far more issues with pkg-ng, for example.

                          In its early life PKGng had some issues but currently I do not recall any problem from more then 2 years. What problems did you faced?

                          I currently use a combination of Void and Alpine Linux, partly because it comes without systemd. But that’s really just a personal preference thing. and I think that “systemd made Linux very unstable and unpredictable” seems rather exaggerated to me.

                          I also ‘follow’ the development of these two Linux systems. Their design philosophy is very close to BSDs. Personally if I would HAVE TO move to Linux it will either be Ubuntu MATE (to not interest about internals at all) or one of Void or Alpine.

                          Regards.

                          1. 2

                            There are many things that ‘got me’ to use FreeBSD instead of Linux in most cases. I can not state all of them here of course (I probably will on a blog post some day). Its one of many. Things I need work on FreeBSD so moving to Linux would not give me anything …

                            Yeah, that’s fair enough. my point was mostly that many of the items in the article are just a personal preference, rather than a real advantage or something. As you know, I was a FreeBSD user for many years (“Carpetsmoker”, in case you’ve forgotten who I am with the username change 😉), but have used mostly Linux for the last few years, and as a user … I find that I don’t really notice the differences most of the time.

                            And yeah, when things go wrong with systemd it can be really hard to actually debug and fix, which is one of the better criticisms of it IMHO. Like I said, I’m not a fan either, but for the overwhelming majority of the cases, it does work.

                            In its early life PKGng had some issues but currently I do not recall any problem from more then 2 years. What problems did you faced?

                            I had a bunch of segfaults and “solver errors” (if memory serves, it was a long time ago). Being unable to upgrade several systems was the direct cause for installing Linux, and haven’t looked back since.

                            I’d be surprised if these issues still exist, as this was like 5 years ago; it’s just an example of FreeBSD unfortunately not always being as stable as is sometimes claimed (another example might be the FreeBSD 5 release, which was also a long time ago, but was not great release, to put it mildly; I don’t know of any more recent examples as I haven’t used FreeBSD in a few years, but there have certainly been problems over the years).

                            1. 1

                              As you know, I was a FreeBSD user for many years (“Carpetsmoker”, in case you’ve forgotten who I am with the username change 😉

                              I have forgotten many things but I do remember You sir :)

                              Will have to remember arp242 now.

                              Yeah, that’s fair enough. my point was mostly that many of the items in the article are just a personal preference, rather than a real advantage or something.

                              For example sound. It works on both FreeBSD with OSS and on Linux with Alsa/Pulseaudio mix. I have lots of problems with Pulseaudio when I used that on Ubuntu several years ago. The only problem I had with FreeBSD sound is that I needed to add some really strange two lines into /boot/device.hints file so I can hear sound on mini jack port with earphones … and that was only on one laptop - ThinkPad T420s. T420/T520/W520/X220 does not have that problem. With Pulseaudio I have to reboot the machine to get the sound back.

                              I not so long ago wanted to migrate my wife laptop from Windows 8.1 to Linux (because desktop distributions are a lot more ready for out of the box experience). I have tried Ubuntu MATE and ElementaryOS. Both freezed after one or two days of suspend/resume sessions. It was Dell XPS 12 9Q23. GhostBSD was not that polished by then and I really did not want to make a custom desktop for ‘casual’ user on FreeBSD by then. Of course she got back to Windows.

                              I had a bunch of segfaults and “solver errors” (if memory serves, it was a long time ago). Being unable to upgrade several systems was the direct cause for installing Linux, and haven’t looked back since.

                              I see your point, yes I remember some of those several years ago.

                              it’s just an example of FreeBSD unfortunately not always being as stable as is sometimes claimed.

                              I think statistically it is more stable then Linux, but as any OS with active development sometimes bad things will happen.

                              another example might be the FreeBSD 5 release, which was also a long time ago, but was not great release, to put it mildly

                              This is a big mystery for me. I started my FreeBSD journey with FreeBSD 5 … the worst FreeBSD release ever … and that sill made me use it instead of any Linux. Linux must have been really bad when it comes to FreeBSD 5 times :p

                              Wish You all the best.

                              Regards.

                              1. 2

                                Pulseaudio is a bit better than it was a few years ago; I used to have to pulseaudio -k and restart it quite regularly, but it’s been perhaps 2-3 years since I last had to do that. But yeah, I agree sound on Linux is a mess, and has been for a long time.

                                In general I have good experiences with Ubuntu; and I’ve found that suspend/resume can be a bit fickle on any non-Windows system; I had a laptop where it worked great on Linux but not FreeBSD too; so yeah, in some cases FreeBSD works better here.

                                I think statistically it is more stable then Linux

                                Maybe, I don’t know. I suspect when averaged out over all hardware the difference will be negligible. Same for Windows, actually. But no way to be sure until someone runs those kind of tests (which would be rather interesting, actually!)

                                This is a big mystery for me. I started my FreeBSD journey with FreeBSD 5 … the worst FreeBSD release ever … and that sill made me use it instead of any Linux. Linux must have been really bad when it comes to FreeBSD 5 times :p

                                At that time, Linux was more fragmented and a bit more “gung-ho” than it is now, and FreeBSD was rather more mature in some respects, even with FreeBSD 5 (the later releases were better). It also offered some things that were not really available at all on Linux at the time (jails, GEOM, kqueue, probably some more). But since then, the differences have evened out quite a bit.

                      3. 3

                        When FreeBSD talks about stability, the project doesn’t mean in the not-crashing sense: that’s expected from a modern OS. They mean that ABIs and KBIs don’t change within a major release (and ABIs are supported across multiple major releases with compat layers). That’s also where the separation is important. If something depends only on components in the base system, you can be sure it will keep working across an upgrade.

                        Linux (the kernel) has very good ABI stability: statically linked programs from Linux 1.0 typically work today. It has terrible KBI compatibility: kernel modules built last week may not work on this week’s kernel. Glibc has superb ABI compatibility. It makes extremely good use of symbol versioning to avoid breaking programs or libraries linked against earlier versions. libstdc++ tries hard. Everything else in a typical Linux distro is very hit and miss. Because many of the core components of any given distro are developed elsewhere, this can cause problems: upstream breaks an ABI in something that the distro wants to make strong ABI guarantees about, so the distro has to make a choice of whether to stick with an old version, maintain a fork for the duration of a distro release’s lifecycle, or break their ABI policy.

                        On FreeBSD, this layering means that there is a clean separation between things that have long-term documented ABI stability guarantees (provided by the core OS project) and things that don’t (anything from third-party ports / packages). For a lot of things, that doesn’t matter, but for core bits of your infrastructure it can be valuable knowing that you have both long-term stable ABIs and the ability to run the latest versions of other packages on top. The separation in the filesystem means that you know that things in /usr are safe stable dependencies, things in /usr/local are not (and, if you want things installed yourself from source without packaging, that’s what /opt is for: I generally use a naming scheme of /opt/{package-name}-{version} so that I can uninstall things I’ve built from source with rm -rf). Again, this is where the ABI compatibility is valuable: I know everything in /opt that depends only on things in /usr and things that I’ve installed in /opt will keep working across an upgrade, even if all of the packages from the ports collection are upgraded and some of the core ones have ABI breakages.

                        1. 1

                          Yeah, that’s fair enough, and I agree there is some value in that. But that’s not really the kind of stability the article is talking about though, as I read it anyway.

                      1. 0

                        Does FreeBSD have it’s own ZFS yet or is it the Solaris one with the scary Oracle license?

                        1. 1

                          It’s the CDDL, yes. It’s a separate cddl directory. I’m not sure what’s so scary about it though? It’s incompatible with the GPL, which can be an inconvience for sure, but that’s not really “scary”?

                          1. 1

                            I mean does Oracle ever sue anyone over the licenses on their sort of open source software? No? Never? Great, that’s a comfort.

                            1. 1

                              They could sue with the GPL as well; it’s pretty much the same license. As far as I know, there is nothing inherently in the CDDL that makes it any more or less scary than the GPL.

                              Is Oracle a great company? Clearly not. But that’s an entirely different thing than whether or not the CDDL is “scary” or not (never mind that FreeBSD imported it from Sun Solaris, before the Oracle acquisition; I’m actually not sure if either FreeBSD or OpenZFS integrated any code from after the Oracle acquisition since they were pretty quick to kill OpenSolaris).

                              1. 1

                                Look I’m the first to argue in favor of choosing a Copyleft license but doesn’t incorporating a Copyleft component into the core of your system go against the licensing principles of FreeBSD?

                                As for the scariness of CDDL, it’s a weird incompatible license with a litigious author. That’s scary. Wouldn’t want to base a business on code that’s licensed like that. At least Oracle license the JVM under the GPL.

                                1. 1

                                  doesn’t incorporating a Copyleft component into the core of your system go against the licensing principles of FreeBSD?

                                  There’s some GPL code as well; it contained gcc in base for a very long time (old GPL2 version), and there’s still stuff like GNU diff, grep, etc. There are also some GPL2 kernel modules I believe (although not compiled in by default, but rather a loadable module). While in general FreeBSD tend to prefer simple permissive licenses, I’m not sure if you can really talk about “license principles”; from what I’ve seen, the considerations tend to be quite pragmatical in this regard.

                                  As for the scariness of CDDL, it’s a weird incompatible license with a litigious author.

                                  Oracle didn’t write the CDDL, Sun did. I’m not sure why it’s “weird”? The reason they wrote it is because they wanted a file-based copyleft that could be more easily mixed with other licenses and doesn’t apply to the binary. Seems to make sense to me; it’s just a different take on copyleft; I don’t see what’s so weird about that.

                          2. 1

                            FreeBSD imported OpenSolaris/Illumos version of ZFS, not Oracle version.

                            The FreeBSD base system comes with this ZFS.

                            If you want to try latest OpenZFS then install and use these ports/packages instead:

                            • sysutils/openzfs-kmod
                            • sysutils/openzfs
                            1. 1

                              Is the FreeBSD kernel (as distributed in the base system) licensed under a BSD license or a mix of BSD and Copyleft (like CDDL)?

                              1. 1

                                The ‘default’ license that covers most of the FreeBSD system is the BSD 2-Clause license:

                                https://www.freebsd.org/copyright/freebsd-license.html

                                The ZFS was imported with its CDDL license and is still under CDDL.

                                For the other licenses, it depends what the license is.

                                You can check which Contributed Software is included in each FreeBSD release in the Release Notes:

                                https://www.freebsd.org/releases/12.1R/relnotes.html#userland-contrib

                                For example ntpd uses its own NTP license and BearSSL uses MIT license.

                          1. 14

                            Reading this at the same time as being on Day 2 of installing something from /usr/ports on FreeBSD. Day 1 was wasted because the one small thing I wanted to install tried to install and build 16 GB of dependencies, including building GCC and LLVM from source.

                            I had to start over with a bigger disk. Now on hour 5 of compiling LLVM. jwz used to say about Linux “Linux is only free if your time is worth nothing” FreeBSD is only better if your time is worth nothing.

                            Seriously though, FreeBSD just seems like UNIX from a long time ago, when servers were lovingly crafted by BOFHs and could only be truly understood by a bearded elite. I miss those days, and I can still administer a FreeBSD box just fine, even though I have shaved my beard. But now we’re in the “cattle, not pets” era of operations, and FreeBSD’s days seem numbered.

                            1. 5

                              Why not pkg install <whatever>? - is there a reason not to install a package this way?

                              1. 3

                                I wish. This is the virtualbox drivers and are only available as a port, AFAICT.

                                1. 2

                                  doesn’t having the base dependencies for a port installed like via pkg satisfy the requirements for building a port? I’ve built packages on DragonFly and I’ve not had to build llvm or gcc from scratch - only pkg install them once.

                                  1. 2

                                    Yes, that is assuming you know what the dependencies are. Is there a way to tell ports to tell you what software it depends on, other than going down the entire tree of dependencies?

                                    1. 7

                                      make all-depends-list for the full list of build and run-time dependencies. make missing for what’s needed but isn’t currently installed.

                                      1. 1

                                        If memory serves, I believe there is also a way to install dependencies with pkg; I’m not sure if it was a make target or an external tool (been a while).

                                        1. 4

                                          There’s a ports Makefile target:

                                          # install-missing-packages
                                          #               - Install missing dependencies from package and mark
                                          #                 them as automatically installed.
                                          
                                        2. 1

                                          Oh this might come in handy! Thanks!

                                        3. 2

                                          oh, I’d just hit make, then cancel out of it when it started grabbing something absurd. When I’ve pkg installed devel packages for something like python, usually that’s enough to grab a fairly large dependency tree that satisfies most cases. Given the nature of dependencies, there’s usually a few that cascade into many and by getting those, you end up shortening your build time by a lot.

                                          I wonder if someone has a command to list out dependencies such that you can do something like pkg install $(list my dependencies). That would probably solve a lot of cases right there. 🙂

                                          1. 2

                                            This is my biggest problem with FreeBSD. FreeBSD people advise not mixing ports and packages.

                                            Arch Linux for example has the ABS, which is very similar and to and inspired by the FreeBSD ports tree. Where I believe the ABS is superior is the aim of the ABS is to build a package which is then installed by the package manager.

                                            Then put a front end over make eg $pkg make foo/bar with some flag to install dependencies where possible from binaries. I can only dream

                                    2. 2

                                      Reading this at the same time as being on Day 2 of installing something from /usr/ports on FreeBSD

                                      I wish someone would update the docs. The advice for new users should be never build anything from /usr/ports. If you even have a /usr/ports on a modern FreeBSD system, then the odds are that you’re doing something wrong. If you want to install a port with options different from the standard package build, then your best bet is to use poudriere. If you’re in a hurry, you can pre-populate the cache with packages that you grab from the package site (LLVM can take a few hours to build on a slow machine).

                                      But now we’re in the “cattle, not pets” era of operations, and FreeBSD’s days seem numbered.

                                      I can’t disagree there. I’d love to see FreeBSD fully adopt UCL, grow an init system that can manage dynamic resource allocation properly, and a decent set of jail management tools so that you can configure everything with a UCL plugin to your favourite orchestration service.

                                      1. 2

                                        So another frustration that I didn’t mention before was the state of the documentation. What the OP says is a good thing is actually quite terrible. The docs are outdated and contradictory.

                                        There are three different documents for hooking up FreeBSD with SSSD, none of them are correct, and they all use out of date information. It’s a frigging mess.

                                        The one good thing is that it finally kicked me in the ass enough to put in a PR for the Terminator INSTALL file

                                      2. 1

                                        I do recommend you do explore the other BSDs too, if you haven’t yet.

                                        Also, please consider running it on real hardware. An old workstation or laptop, or even a raspberry pi will do. The experience just isn’t the same with virtualization or an emulator.

                                        1. 3

                                          I was planning on trying out FreeBSD on my new RPi 4 but sadly it doesn’t seem to be ported to that platform yet.

                                          1. 2

                                            If you want cheap, realiable and be sure to have working laptop for FreeBSD then use one of these: ThinkPad X220 ThinkPad T420 ThinkPad T420s ThinkPad T520 ThinkPad W520

                                            … and they come with great real 7-row keyboard too.

                                            Personally I use 9 years old W520 with 4C/8T, 16GB RAM and large SSD along with that great keyboard and bright 15” FullHD screen it has everything that is needed.

                                            1. 1

                                              I’m using openbsd on a ThinkPad X395. Works fine, except the wireless.

                                          2. 1

                                            Do not use /usr/ports of you do not compile.

                                            Just use pkg(8) for packages.

                                            1. 2

                                              There’s other Freebsd-based alternatives, although I find Dragonfly makes a much better desktop than anything freebsd-based.

                                              Freebsd really went to hell ever since they booted Matt from it.

                                              1. 3

                                                What makes DragonflyBSD a better desktop OS in your opinion?

                                                1. 5

                                                  The LWKT design and the concurrent lockfree/lockless system servers design does allow for improved responsiveness. HAMMER2 is a great filesystem with checksums and snapshotting but without the overhead of ZFS. Dragonfly also does generally do a better job of keeping graphics drivers synced against Linux’s.

                                                  This is of course Ignoring Freebsd’s defaults (terrible for desktop, terrible for servers, terrible in general).

                                                  IMHO, Freebsd’s been severely mismanaged after the Dragonfly crowd left the project.

                                                  1. 4

                                                    That “freebsd defaults” link is really not a great source of information as you can tell it was done by someone who has a lot of grudges and did a lot of research about certain areas but the author isn’t well versed in those areas either.

                                                    But more to the point: I’ve tried getting defaults changed, as a project committer. The reactions I’m conditioned to expect are “we don’t know if that’s safe to change or what it will break” (even though tons of users make the change for best practices); “get a ports exp-run done” which may happen, but results seem to be ignored because nobody else cares; “Please provide extremely detailed performance benchmarks” and feel like you’re expected to produce a master’s thesis on the topic; and finally, “our downstream vendors will be affected”.

                                                    So I kind of gave up on getting those changes made.

                                                    1. 21

                                                      I feel your pain. I’ve stepped back quite a bit from the FreeBSD community in general since I stood down from the Core Team and it’s been really good for my mental health. There are some amazing people in the community but there are enough toxic individuals that I find it really hard to remain actively involved, especially when senior members of the community actively enable these people. The project has lost good contributors who have learned that there are projects that they can be paid to work on and don’t have to deal with obnoxious people.

                                                      It’s a shame, because there are a lot of things I really like about FreeBSD:

                                                      • A stable ABI (and KBI) across major releases makes it really easy to support.
                                                      • Up-to-date packages. A recent thread prompted me to try spotifyd for a FreeBSD-based NAS that’s connected to my living-room speakers. pkg ins spotifyd and a bit of config and it worked (with the gotcha that it only starts if you start it before avahi-daemon, not afterwards, with a really unhelpful error message), so I decided to install it on the Raspberry Pi in the bedroom that runs musicpd (with an NFS mount from the NAS). After 15 minutes of trying to follow the official instructions, I still didn’t have it working.
                                                      • It’s a great dev system. This is related to the two above points, but it’s trivial to install the latest C++ toolchain, for example. The latest LLVM is always available, whereas for Ubuntu we end up having to enable a bunch of third-party repos that, on a good day, don’t conflict with the base system. At $WORK, I do a lot of my development in a FreeBSD VM with libc patched to use snmalloc instead of jemalloc (which works as a nice stress test of snmalloc). Rebuilding the entire base system for this to work is trivial.
                                                      • ZFS out of the box with boot environments is great. Accidentally broke libc with one of my patches? Never mind, just revert to the old BE and reboot. Incremental backups are trivial with zfs send / zfs receive (I really like zfsbackup-go for sending encrypted backups to the cloud).
                                                      • Capsicum and Jails actually give me the security abstractions that I want (and, apparently, so does everyone else: WASI is basically Capsicum).
                                                      • The base system is small and doesn’t install thousands of packages that I don’t want.
                                                      • They don’t break things that work. The interface to ifconfig is the same as when I learned it in the ’90s. The thing that originally made me switch to FreeBSD from Linux full time around 2002 that sound Just Worked. Linux went through a ‘we’ve deprecated OSS, rewrite everything to use ALSA’ phase (and ALSA was so bad that you had years of GNOME and KDE doing sound mixing in [incompatible] userspace daemons, that were then replaced with PulseAudio). Back then, on Linux, I could have either a KDE app or a GNOME app able to send notification bings, but not both. On FreeBSD 4.x, I had to configure each one to use a different /dev/dspN, and XMMS to use a third, leaving the default /dev/dsp for things like BZFlag, but then it worked. With 5.x, that manual configuration step went away. Most recently, I plugged a 5.1 surround-sound system into a FreeBSD box and it worked out of the box, no configuration, and things like VLC used it automatically

                                                      But there are also some systematic failings.

                                                      • There is a strong resistance to anything other than C in the base system. The OS still suffers from classes of vulnerabilities that could be eliminated by using modern C++.
                                                      • The build system and developer infrastructure (revision control, CI, and so on) infrastructure are archaic. When I contribute to FreeBSD, more than half of my time is wasted fighting these things. It’s not surprising that I rarely have the motivation to do so.
                                                      • There is a strong resistance to taking dependencies on things that most people use. Taking a dependency on ZFS (or, at least, on a filesystem with cheap snapshots and clones, which can be taken as a given for any future filesystem) would enable a load of useful things in terms of updates, jail management, and so on, but these are all relegated to third-party components that aren’t tightly integrated with the base system. Similarly, kernel modules use an extra function call for locks (to preserve the ABI), whereas the code compiled into the kernel inlines them. Shipping kernel modules as LLVM bitcode and compiling at install time would eliminate this, but add an LLVM dependency which only 99.9% of the users want.
                                                      • /etc must be in the root FS and contains both defaults and user-modified things. This means you can’t have a read-only root FS and do any configuration updates (which makes sharing a root FS difficult, which is annoying for PXE boot, jails, and a bunch of other things).
                                                      • Most of the management tools are still set up for managing a single machine. If you want to manage jails, you have to install all of the control-plane things inside. Even pkg, which is jail-aware, implements this by running the version of pkg that is inside the jail, rather than having a single copy of the pkg tool and having it manage the entire system. The init system is completely fine for managing one machine, but it sucks for managing a fleet of jails or for managing a machine that is part of a cluster.
                                                      • Closely related, the configuration system is still fixated on static configuration. Libucl is a wonderful library, which allows lots of layering and default configs, but is still not widely used in spite of having been written by a FreeBSD developer. When you insert an optical disk or plug in a USB drive (for example), the kernel sends a message to a device that devd monitors. devd then runs a shell script based on a static configuration file (or, at least, set of files). If you want to do something in a DE dynamically based on the current user, you need to either reimplement the devd parsing logic (fortunately, devd can stream a copy of its raw kernel event stream) or provide a single static hook and implement stuff yourself. You can’t just do what most consumers of devd events want and dynamically register to receive a notification for a particular thing while your process runs. Things like WiFi configuration for multiple networks are all done via a pile of shell scripts dangled off a devd hook.
                                                      • The container story sucks. For large-scale deployments (where FreeBSD used to be a serious contender) containers are the deployment and orchestration mechanism of choice. FreeBSD’s jail subsystem (particularly with VNET) is ideal for this, but the tooling doesn’t exist. Doing this well depends on packaging the base system into smaller components so that you can have a minimal base system install in each container.
                                                      • Closely related, the packaged base system was initially prototyped over 5 years ago, but is still not finished. It basically works, but is unsupported.
                                                      • There are structural issues in how security issues for ports are handled. The infrastructure is not good at incremental builds of package sets that have a single change (and there are no priority runs for security updates), so you wait 3-4 days from public disclosure until a package is released (if you build your own package sets, you can usually get that down to an hour or less). That’s totally unacceptable in a modern system.

                                                      This is off the top of my head, and I’m probably missing some good and some bad. I still use FreeBSD a lot, but the project is increasingly becoming irrelevant and has structural resistance to improvement. I’d love to see a group of active developers fork the project. Unfortunately, TrueOS / TrueNAS was not this. Their approach to packaging the base system, for example, would have made things significantly worse for anyone wanting to implement a container solution on top of FreeBSD.

                                                      1. 3

                                                        Yes, it is structural and endemic. For a long time, freebsd has seemed fully hopeless. I honestly just moved on. There’s no point fighting to get freebsd back on the right track, when Dragonfly does exist.

                                                        1. 5

                                                          ZFS and GELI are too important to me or I’d consider Dragonfly.

                                                          1. 3

                                                            Regarding GELI, Is LUKS/dm-crypt not good enough for you? Dragonfly implements that.

                                                            HAMMER2 isn’t ZFS, but there’s some overlap.

                                                            1. 2

                                                              I made the mistake of using ZFS recently only to discover I can’t shrink a pool. I accidentally added a disk without raid when I was trying to set up a mirror and now that machine needs to be rebuilt. ZFS feels really really unfinished.

                                                              1. 2

                                                                Actually, you can undo it thanks to bookmarks in recent ZFS versions, but I’ve never tried it.

                                                                ZFS is not unfinished, it’s just not meant for users who don’t architect their entire storage system before setting it up.

                                                                edit: zpool commands should come with an “ARE YOU SURE?” with detailed explanations of what the commands do. But like the unix we’ve all come to know and love, a single typo or forgotten word can destroy your entire system.

                                                            2. 3

                                                              How is dragonfly on laptops? I see there’s an install guid for an XPS 13 on the website, and for a chromebook… would I expect semi-modern hardware to generally work, and then have enough up to date packages that it’s not incredibly painful?

                                                            3. 3

                                                              Is there a better “freebsd defaults” link? I’m running FreeBSD as my home NAS (and a general workhorse for any service needed), but would like to learn more about ways to configure it better.

                                                              The reason I went with FreeBSD instead of any Linux is that in general I find FreeBSD nicer to use, as all the documentation is there, and ports are easily readable. Not to mention that at time I needed ZFS :)

                                                            4. 2

                                                              I currently use FreeBSD also as my desktop/laptop system. I have everything I need. Including suspend/resume, playing games using WINE and virtualization for Linux and Windows using VirtualBox (or Bhyve if needed).

                                                              I have checked DragonflyBSD documentation but it can be outdated so I have several questions if I may …

                                                              Is there VirtualBox for DragonflyBSD? … or Bhyve at least? (need virtualization solution for Windows and Linux)

                                                              What about suspend/resume? According to this page - https://www.dragonflybsd.org/docs/user/DragonFlyOnLaptops/ - it does not work for even as old laptops as ThinkPad T420 (9 years old).

                                                              Does HAMMER2 supports transparent compression (with lz4 or gzip for example)?

                                                              Can DragonflyBSD boot directly from HAMMER2 without other fat/ufs partitions?

                                                              Can DragonflyBSD run games using WINE (like Fallout or Colin McRae Rally 2.0 for example)?

                                                              Thanks in advance.

                                                              1. 1

                                                                suspend/resume

                                                                YMMV. That page is seldom updated so I’d recommend testing it yourself.

                                                                Is there VirtualBox for DragonflyBSD?

                                                                vkernels only. Qemu without acceleration. Planned but not done.

                                                                Can DragonflyBSD boot directly from HAMMER2 without other fat/ufs partitions?

                                                                Yes, it’s been, for a few years, the default for /.

                                                                Can DragonflyBSD run games using WINE (like Fallout or Colin McRae Rally 2.0 for example)?

                                                                It used to work, before x86-32 was dropped entirely in dragonfly. Currently pending work on binary emulation wine-side.

                                                                Does HAMMER2 supports transparent compression (with lz4 or gzip for example)?

                                                                Yes, lz4, enabled by default.

                                                                1. 2

                                                                  Thank You.

                                                        1. 1

                                                          Wow, I had no idea FreeBSD was this fragmented. I guess that explains why OpenBSD has more mindshare nowadays.

                                                          1. 6

                                                            Its not fragmentation, its FreeBSD ecosystem.

                                                            Let me explain, NomadBSD and GhostBSD ARE NOT forks of FreeBSD. They just take FreeBSD RELEASE or STABLE, then they build desktop on top of that and ship it. They benefit from upstream FreeBSD changes when it comes to new drivers, new features and bug fixes. Its pointless for them to maintain separate operating system fork.

                                                            Not sure how long FuryBSD will live, its quite young and knowing GhostBSD and NomadBSD I do not see any point in creating FuryBSD. I would just join NomadBSD or GhostBSD team instead being in their place.

                                                            Hope that helps.

                                                            1. 2

                                                              I know a number of FreeBSD users, myself included, take their approach with their personal environments.

                                                              Mine is just vanilla FreeBSD, with a bunch of scripts to install and configure the packages I use regularly. The whole lot lives in Gitlab:

                                                              https://gitlab.com/duncan-bayne/freebsd-setup

                                                              1. 3

                                                                I also use this approach, I described the process here:

                                                                https://vermaden.wordpress.com/freebsd-desktop/

                                                              2. 1

                                                                Thanks for clarifying.

                                                            1. 2

                                                              Couple of questions:

                                                              • how do I install updates? I tried freebsd-update but it seems not to be supported on it. make buildworld also failed (I don’t have the rpi3 it here right now and don’t remember). Am I required to cross compile the system for security updates?
                                                              • does the audio (on board jack) work?
                                                              1. 3

                                                                Unfortunatelly ARM32 and ARM64 are not Tier 1 architectures (only i386 and amd64 are) so there are not updates with freebsd-update. This will change with introduction of FreeBSD 13.0-RELEASE … at the beginning of 2021 I think.

                                                                1. 2

                                                                  It’s understandable they don’t provide binary updates, but I was surprised I couldn’t just make a buildworld from the pi itself following this. I have to admit I haven’t looked too much in details, I will try again later.

                                                                  1. 1

                                                                    The make buildworld process sometimes fails even on *-RELEASE versions.

                                                                    Submit a bug here - freebsd.org/send-pr.html - or describe your problem on the FreeBSD Forums - forums.freebsd.org - you will get lots of help there.

                                                              1. 2

                                                                When in doubt, just stick to well established alternatives as NomadBSD (for live) and GhostBSD (for installed).

                                                                1. 1

                                                                  This is exciting stuff. For me aside from a few hardware things, the biggest thing preventing me from moving 100% to BSD is certain programs I can’t live without. I’m hoping this can help bridge the gap a little.

                                                                  1. 2

                                                                    Which programs will you miss on FreeBSD?

                                                                    1. 1

                                                                      Can’t speak for the OP, but for me not having Spotify is annoying. I haven’t tried Linuxulator, though.

                                                                      I’ve also had problems with audio in general on FreeBSD, but in fairness I haven’t much time to read up on it or debug it.

                                                                      1. 5

                                                                        I do not use Spotify but there are two ‘native’ ways of using Spotify on FreeBSD.

                                                                        1. Using TUI interface in console using audio/spotify-tui port and/or package: https://github.com/Rigellute/spotify-tui

                                                                        2. Using daemon mode with audio/spotifyd port and/or package: https://github.com/Spotifyd/spotifyd

                                                                        There are also ‘non native’ ways like using WINE for example: https://forums.freebsd.org/threads/howto-spotify-on-freebsd-amd64.34780/

                                                                        For me personally Spotify is the same bitch as Netflix. Support FreeBSD (or just be OS-agnostic using web service) or GTFO (or even die) for me. Besides even on Firefox/Chrome on Linux/Windows you still can not get even 1080p with Netflix … and people pay for that …

                                                                        Till they get their mind back I prefer 1080p from Torrent downloads.

                                                                        Its nice that Netflix uses and commits code to FreeBSD but its hypocrisy to use FreeBSD and NOT allow using the service on it … at least for me.

                                                                        Same with TOM TOM maps which use Linux and Linux is not one of the supported systems.

                                                                        Not sure if that helps but regards ;)

                                                                        1. 1

                                                                          Thank you! This pointed me in the right direction, and I have it working now.

                                                                          In case anybody stumbles on this later (there’s apparently not much info around for spotify on FreeBSD), what I found is that spotify-tui doesn’t actually play anything, but uses the Spotify web API to view playlists and other info and control playback. Installing and running it (the command is spt, not spotify-tui) shows a “device” list that was empty for me.

                                                                          I spent some time trying to configure my sound card (a Roland UA-25EX USB card) to show up in the list. This ended up being a dead end with respect to Spotify, but I discovered how to set the default sound card with “sysctl hw.snd.default_auto=9”, and that made audio work in Firefox (at least on YouTube). Finally, buried in the README on GitHub, I found out it doesn’t support streaming directly, but requires another player.

                                                                          So I looked at spotifyd, which can play audio but has no UI. I learned my lesson and followed its README, and I’m able to play back after telling it my username, password, and to use the “portaudio” backend.

                                                                          My only complaint is that I liked finding “related” artists in the Web player UI, but I’ve been working on a tool to help with that anyway.

                                                                          1. 1

                                                                            Welcome. Glad you got it working :)

                                                                        2. 1

                                                                          Seamonkey supports flash; could use that.

                                                                          1. 1

                                                                            FWIW, Spotify doesn’t seem to use Flash.

                                                                      2. 1

                                                                        You may be lucky, but probably not. The Linux compat layer is good for things that could easily have FreeBSD versions but are not open source and so can’t be rebuilt. It doesn’t support things that use very Linux-specific features (such as Chrome or Docker).

                                                                        The things I like about FreeBSD are well-designed kernel interfaces. For example, Chrome’s sandboxing is far simpler to implement with Capsicum than seccomp-bpf or SELinux (though the Chrome team is incredibly hostile to taking patches to support other operating systems). Containers are trivial with jails instead of the mess of kernel namespaces, cgroups, and more seccomp-bpf (which, ironically, means no one invested in the tooling for making them useable, because they almost work usefully out of the box, whereas on Linux you need a load of goo to make them work at all and so it’s easier to justify building the tooling). Unfortunately, this significant difference in kernel API design philosophies means that implementing these Linux-specific APIs is nontrivial (especially when, for things like seccomp-bpf, they leak kernel implementation details) in a compat layer.

                                                                      1. 3

                                                                        A nice guide, but it’s making the installation process complicated by doing too much. You don’t need mongod_enable=YES, you don’t need the lines in /etc/fstab (or having it exist, at all). In my experience, the installation is no harder than:

                                                                        pkg install unifi5 && sysrc unifi_enable=YES && service unifi start
                                                                        

                                                                        I had done this myself a while ago. A caveat with my setup, for Unifi at least, is that I run jails without IPv4 connectivity; the jails don’t even have a loopback.

                                                                        % ping 127.0.0.1
                                                                        ping: ssend socket: Protocol not supported
                                                                        

                                                                        This causes the connection to the local mongodb service to fail, because it’s hardcoded to use 127.0.0.1 there. Otherwise, it works fine on my setup with IPv6 only, so as long as I give it access to an IPv4 loopback address for mongodb it works.

                                                                        The controller listens on IPv6, but the access point does not support IPv6 as far as I can see. An TCP proxy between the AP and the controller translating between IPv4 and IPv6 fixes that. I forward ports 80, 443 and 8080 to the controller using sniproxy.

                                                                        1. 1

                                                                          Maybe they wanted to make their movie longer instead of finishing after several seconds with these 3 commands you mentioned :)

                                                                          As for ping(8) working in a FreeBSD Jails its pretty simple. Just set security.jail.allow_raw_sockets to 1 on the FreeBSD host and they will work.

                                                                          # sysctl security.jail.allow_raw_sockets=1
                                                                          

                                                                          To make it permanent put it into the /etc/sysctl.conf file.

                                                                        1. 3

                                                                          Is there anything XFCE users like me would miss?

                                                                          1. 4

                                                                            Perhaps Wayland and HiDPI display support?

                                                                            1. 1

                                                                              Hype :)

                                                                            1. 2

                                                                              Thank you for linking to the direct PDF. It was on my todo list to get and read, but I kept putting it off, as it’s a PITA to download.

                                                                              1. 2

                                                                                No problem, I will try to remember to put every episode here.

                                                                                Regards.

                                                                              1. 3

                                                                                Let’s use a small device like PC Engines APU2 (4 core AMD GX-412TC SOC 1Ghz, 4GB of RAM). On this device, how many jails executing a real process can we start?

                                                                                480

                                                                                😎

                                                                                1. 1

                                                                                  With 4 GB RAM 1000 FreeBSD Jails is possible:

                                                                                  https://www.freebsdnews.com/2009/11/10/night-1000-jails/

                                                                                  1. 1

                                                                                    Yes, from the article:

                                                                                    The current system limit of this test is due to 4GB of RAM consumed by all the bird processes.
                                                                                    

                                                                                    Where bird is the application which is run inside the jails for the test. See https://bird.network.cz/

                                                                                1. 11

                                                                                  Curious why he stopped at the X200. The X220 is the paragon of laptops for me. I have it running FreeBSD and everything except the fingerprint reader and webcam works, and that’s more a BSD issue. Previously with Arch everything “just worked” and it could handle 1080p videos :)

                                                                                  My work laptop is a 6th gen X1 Carbon and it too has FreeBSD on it, working as well as one could expect. Battery life is 8+ hours if I turn the screen way down and only keep a minimum of apps open, which is how I usually run anyhow.

                                                                                  1. 17

                                                                                    Curious why he stopped at the X200

                                                                                    I think that’s the last model that works on 100% Free Software. I forgot what the exact issues are with newer models as I don’t really care about this personally, but it’s also the newest the FSF sells.

                                                                                    But yeah … After the x220 things went a bit downhill for a while, but they corrected a bunch of mistakes with the x260 (or x250?). I have a x270 and it’s not perfect, but find it works very well for me.

                                                                                    1. 10

                                                                                      The screen of the X200 is 10% larger than the X220, the X201 was the last model to have a 1440x900 display. After that they downgraded the resolution pretty significantly for many years.

                                                                                      I was using the X200 from 2009-2016 (for this exact reason) at which point I upgraded to an X301 which has a slightly slower clock speed but a 13-inch 1440x900 screen and a nicer palm rest. It also has a second battery bay, but you can’t buy non-exploding batteries for it any more.

                                                                                      1. 3

                                                                                        Not exactly … the X201 had 1280 x 800 display. The X201s had 1440x900 display.

                                                                                      2. 3

                                                                                        Does it have cast steel hinges & a latch? That’s what I miss the most about laptops.

                                                                                        1. 2

                                                                                          16:10 is much nicer than 16:9, and the X200 keyboard feels much nicer than the X220.

                                                                                        1. 4

                                                                                          So fucking true and sad at the same time … there are not usable/true laptops anymore, just some tablet wannabe shit with island bullshit keyboards …

                                                                                          About that T520 battery time … its definitely too low.

                                                                                          You have written about several operating systems but if you are speaking about FreeBSD, then I got about 4-5 hours of battery time on T520 with Intel graphics, details of settings described here: https://vermaden.wordpress.com/2018/11/28/the-power-to-serve-freebsd-power-management/

                                                                                          I currently use W520 with FreeBSD and with largest battery I gout about 4-5 hours of battery time with Nvidia disabled in BIOS and using Intel graphics only.

                                                                                          Hope that helps.

                                                                                          BTW. You can also can get T520 with only Intel graphics.

                                                                                          Regards.