Happy 30th FreeBSD: Why FreeBSD open source project has endured
aster.cloud
aster.cloud
I have also learned much more by fixing Linux, while my FreeBSD servers ran unattended for months or years.
Relative to Windows, this is what I like about GNU/Linux, too. I used to work as an admin/helpdesk monkey, taking care of ~75 users and about 10 servers. And things would randomly break all the time. Having used mostly Linux and BSD in my private life for more than a decade at the time, I constantly found myself wondering how people can live like this. FWIW, on Debian and openSUSE, I had no trouble with things breaking randomly except on Tumbleweed. But there, it's usually just a question of rolling back to the latest snapshot, waiting for a week or so and running the upgrade again.
Totally agree that once up and running, FreeBSD is extremely reliable. Linux can be reliable, but it depends a lot of the distribution, and what you're doing with it.
It just works! Specifically, keeping the system running and up-to-date is very low-maintenance. On the software side, the pkg system has been great—and a welcome change from manually installing ports from source. On the OS side, security updates and upgrading major and minor versions have all been painless.
I haven't run a Linux server long-term, so I can't compare, but my biased perception from the outside is that it seems like Linux changes more rapidly and requires a bit more hands-on management.
Debian upgrades "just work". Even had colleague accidentally upgrade 2 releases at once (put too new repo on one of the old servers) and it worked without a hitch
Ubuntu? eh, usually ?
CentOS/RHEL/derivatives ? It isn't even supported as a feature.
Both my desktop and NAS are going 10+ years with just dist-upgrade. Also few hundred servers at work where we migrated from CentOS (which was a chore to manage tbh).
As both a Debian and FreeBSD person, I think I was uniquely in a position to like this, and it was awful circa 2012. Some stuff would work, and a lot of stuff didn't, because FreeBSD basic utilities weren't packaged and GNU versions didn't have full functionality: network configuration was difficult, lots of administration was also difficult. You ended up needing a FreeBSD chroot, and then you might as well use FreeBSD/FreeBSD.
But I use configuration management anyway to keep the machines consistent, and, well, upgrade is less work than reinstall... especially if talking hardware that can take 5+ minutes just to reboot (which is like every actual enterprise server I saw).
FreeBSD for me is simple. I have 2 Raspberry Pi 3's with 512MB of ram running FreeBSD 13 and Unbound and a Pi 4 Running FreeBSD and Asterisk. I forget they exist. They literally just keep running, I update them and if needed reboot and they just keep going. You can use mtree to verify the OS, Security is good. But some things like DNS, i do not play with, just let it run (and keep it patched).
I have a full blown Ubuntu Kubernetes cluster and a few RHEL and OEL vm's running various tasks in the lab. Most are the right tool for the job i need it to do.
I have never understood the flame wars for my distro (Linux vs BSD) is better than yours and my license is better (or allows more freedom) than your. They each really do have their places with some expected overlap. I am just happy with the variety that allows me a ton of choices and usually drives innovation.
- OpenBSD (previously NetBSD) has Theo de Raadt
- DragonflyBSD has Matt Dillon
- Linux (kernel) has Linus Torvalds
- GNU has Richard Stallman
- FreeBSD doesn't have a "Founder/CEO" leading it, like the other examples above.
Similarly, while Matt Dillon wasn't a founder of FreeBSD, he certainly was a core/key leader within FreeBSD. When he forked FreeBSD to create DragonflyBSD, a sizable void was left within FreeBSD leadership team. (at least that's how I understand it)
FreeBSD doesn't have a "Founder/CEO" leading it, like the other examples above.
Now, sure. For a long while I'd say jkh came close to being a BDFL.2003, matt leaves FreeBSD (creates Dfly)
https://en.wikipedia.org/wiki/Jordan_Hubbard
https://lists.freebsd.org/pipermail/freebsd-current/2003-Jul...
https://bsd.slashdot.org/story/02/04/30/012222/jordan-hubbar...
This is the reason why commercial software tends to be perceived of higher quality than most open source projects: you need someone to say "no, this is unacceptable."
Thank God we have Linus. Meanwhile the Linux userspace is terrible because there is indeed no Linus, so we're still squabbling over X.org and systemd.
I am the opinion this will all pass, and FOSS movement will fade once all key leaders are gone.
Proven by the fizzling out of all relevant movements throughout the human history.
Open source has stopped being a movement since the turn of the millennium.
I think one big reason is the BSD license. With fewer contributors, the ability for companies to create closed source products really helps to justify using it.
I say this as someone running ZFS on Linux too. So seen things from both sides of the fence.
It’s hard to explain why it’s a nicer experience though. Maybe someone else can?
I'm a bsd lover so don't take that wrong.
Personally I prefer FreeBSD as an operating system but the lack of Docker keeps me stuck to Linux (I don’t even like Docker but at this stage it’s now the de facto standard for packaging containers).
Though to be fair I haven’t tried Pot. Used ez_jails a lot in the past, as well as rolling my own build scripts. So maybe I’m missing a trick?
- a lot of project distribute a docker image or we have community "distributions" like linuxserver.io. But nothing come close to a good distribution package management so far,
- the security of containers is still very unclear, misunderstood & unequal,
- the ecosystem is now fragmented between docker, podman, etc.
- generally it feels like things have become more complicated !
We also now do see new generation (?) of distributions centered around containers like CoreOS, MicroOS or even Silverblue.
My questions would be: is the BSD world trying go move this way too with bsdpot & potluck or consider this is not the way to go or this just a distraction and Ports will always be the way to distribute software?
In a bhyve vm config file you add 'bhyve_options' and add some virtio-9p mount points. they are 'per slot' so each of these mounts will need a new number '-s 15' '-s 16' as in my below example.
on FreeBSD host, assuming you are using bhyve-vm (works with plain bhyve also):
/usr/local/vm/nixos/nixos.conf
bhyve_options="-s 15,virtio-9p,podman-archivebox=/HOSTZFS/Services/VM/NixOS/ArchiveBox -s 16,virtio-9p,podman-music=/HOSTZFS/Audio/Music/Flac"
in VM (nixos):
fileSystems."/mnt/podman-archivebox" = {
device = "podman-archivebox";
fsType = "9p";
options = [ "trans=virtio" "version=9p2000.L" "_netdev" "cache=loose" ];
};
fileSystems."/mnt/podman-music" = {
device = "podman-music";
fsType = "9p";
options = [ "trans=virtio" "version=9p2000.L" "_netdev" "cache=loose" "ro" ];
};
If you were not using NixOS, add your mount points in the VM (/mnt/podman-archivebox, /mnt/podman-music).
Then mount them with your docker/podman setup. virtualisation.oci-containers.containers."ArchiveBox" = {
image = "archivebox/archivebox";
...
...
volumes = [
"archivebox_data:/data"
"/mnt/podman-archivebox/archive:/data/archive"
"/mnt/podman-archivebox/sources:/data/sources"
"/mnt/podman-archivebox/ArchiveBox.conf:/data/ArchiveBox.conf"
];
virtualisation.oci-containers.containers."navidrome" = {
image = "deluan/navidrome:latest";
...
...
volumes = [
"navidrome_data:/data"
"/mnt/podman-music:/music:ro"
];
};
The 9p mount points won't get passed into the VM until you STOP the VM and then START the VM (restart won't work).
Once that is done and you can confirm the files are passed through and working, things 'just work'.
This does not work for things that require file locks like passing database files through 9p.
Hope this is helpful to someone.I use Linux on all my laptops and desktops and also on servers that are used for computational purposes, i.e. on which I compile software projects or I run simulations or FPGA syntheses or CUDA programs on GPUs.
I use FreeBSD on servers that implement various networking or storage functions, e.g. firewalls, NAT, DHCP servers, routers, switches, file servers, backup on magnetic tapes, DNS servers and proxies, e-mail servers, Web servers and proxies and so on.
The main reason why I prefer FreeBSD in such servers is that for it I need to waste less time for maintenance and monitoring, because it provides a more stable and consistent environment where I need to make very few custom changes for the services that I need.
In Linux I always have to work much more for a sane configuration.
There are also various specific details, e.g. I like much more the firewall programs that are available for FreeBSD than those that are available for Linux, so for any computer facing the public Internet I use FreeBSD. FreeBSD has better support for SCSI/SAS devices, so where I use such devices, e.g. tape drives, FreeBSD is also the only choice for me.
In FreeBSD I also normally use unattended upgrades and I almost never use more than an hour per year for maintenance, except for reading my e-mails where I receive statistics from the logs of the servers.
With ZFS and boot environments, it's great for upgrades, if you're okay with some downtime. You can certainly do high-availability, but again, there's some hand-holding.
I much prefer FreeBSD for everything I can use it for. But I don't use Docker, or Kubernetes. I use it as a server OS where the only interface is ssh.
Or just a kernel that happens to have been inspired by UNIX and took its own path afterwards.
Beyond that - for regular server use cases, at least - it's mostly a matter of taste, I think. There are situations where you need an enterprise distro, i.e. RHEL or SLES because some third-party software requires that or regulatory compliance requirements demand it. Most of the time, I think the difference is minor for most intents and purposes.
EDIT: If you strongly dislike systemd, FreeBSD is an attractive choice, but there are Linux distros that use a different init system, too.
There was an effort to create something akin to macOS's launchd for FreeBSD, but I don't know how that worked out.
Not trying to "RTFM" you but https://man.freebsd.org/cgi/man.cgi?query=rc contains a nice minimal example script for anyone who's curious.
https://www.bsdfrog.org/pub/events/openbsd-rcd-EuroBSDcon201...
Netflix uses it at their core for the CDN stuff. I think the core of PlayStation OS is FreeBSD. So I’m curious how much these companies are supporting the foundation at.
How is the gaming experience in FreeBSD these days? Has anyone tried it?
Funny, a long time ago I was in the hurdle of switching between Windows and Linux to play games, now with Proton, it is "FreeBSD vs Linux".
And there are likely "distros" that you don't see. Eg, we run our own private "distro" on the CDN at Netflix, which is basically upstream FreeBSD + some kernel patches queued for upstreaming + a limited number of ports + some netflix specific stuff. I imagine other companies using FreeBSD (NetApp, Sony, etc) also have their own private distros.
Why do the BSDs split for good instead of just pulling from upstream and making some changes?
There are also private linux distros. I wasn't really getting into them since they aren't available.
I never used PC-BSD, but I gather it is (or was?) mostly a few changes on top of FreeBSD, so it would fit your model. FreeNAS/TrueNAS core is more or less a specialized distribution of FreeBSD.
Otoh, DragonflyBSD is a fork of FreeBSD; there were big differences in opinion on how SMP should be implemented, and then big differences in implementation, making it hard to just pull and make changes.
FreeBSD is an entire operating system, it ships with a kernel and userland as one completed piece. So you could build a "distro" on top with just things like a desktop environment, but there wasn't the same need to.
This also means that most of the BSD's are fundamentally different operating systems. There are some "distros," but FreeBSD, OpenBSD, NetBSD, and DragonflyBSD are all seperate operating systems.
I guess my question was more about something like Debian. Ubuntu is based on Debian. PopOS and Mint are built off of Ubuntu. They are all separate, but still pull the code from their upstream. Why isn't there a situation like that with the BSDs? As far as I know the only ones that exist like that are GhostBSD and HardenedBSD.
A part of it is certainly userbase size, but the project seems to allow more competition while still being part of FreeBSD. An example, FreeBSD ships with three different firewalls. With Linux, each one would probably have built their own distro with that being the key difference between them.