Hacker News new | ask | show | jobs
by distcs 955 days ago
Since FreeBSD is on the front page today, I thought this is a good time to learn from the collective wisdom of this community. 5 simple questions to those who use FreeBSD to stir up a conversation.

1. Where do you use FreeBSD? On your laptop? Remote servers? Routers?

2. Why do you use FreeBSD instead of Linux?

3. Why do you use FreeBSD instead of OpenBSD or another *BSD?

4. Do you find something lacking in FreeBSD? Is there something that is good in another OS that you'd like to see in FreeBSD?

5. What is that one thing about FreeBSD that you would hate to lose if you were forced to use another OS?

18 comments

1) Desktop, many thousands of remote severs

2) Poor interactions with Linus, DaveM, and the Linux community (see below)

3) Performance

4a) A different package system, more akin to Ubuntu LTS with PPAs, so we could have stable packages for 99% of things, but could get the latest versions of software when needed.

4b) ebpf/xdp

5) Missing ^T (SIGINFO) support, simple init system, a kernel that makes sense

2 extended: In 1994, I was a linux fanatic, with a stack of floppies I'd use to install linux on any pc I could get my hands on. I landed a job as a sysadmin for a stats dept, where we were using ancient DECstations running ULTRIX. Disk space was expensive, and TeX fonts were large. So we kept TeX fonts centrally located in NFS. The DECstations were old and slow compared to PCs (12.5MHz mips, vs 66Mhz 486), so I wanted to replace them with PCs running Linux. The problem came that it took the DECs ~1 second to render latex .dvi file using xdvi. It took a linux box a minute or more. This was because the DECs did NFS file caching, while Linux didn't, and xdvi seeked around at random in the font files.

I went to the 1994 Boston USENIX and met Linus at the Linux BOF. I asked him about NFS file caching. He said something like "bah, nobody uses NFS, we have no plans to implement any sort of NFS caching, its not important".. So I got up, went to the FreeBSD BOF, and they said it should work just fine. I've been a FreeBSD user ever since.

Then ~10 years later, working for a company making one of the first 10GbE NICs, I had submitted our base driver and got it accepted via the netdev list. I then completed work on TCP LRO in our driver, submitted that, and got it NACK'ed for the reasonable reason that they didn't want to have multiple LRO implementations. EVEN THOUGH OUR COMPETITOR'S DRIVER HAD THEIR OWN LRO IN THEIR DRIVER, AND ANOTHER VENDOR SUBMITTED A DRIVER WITH THE BASE DRIVER AND LRO IN THE SAME PATCH AFTER US AND GOT IT ACCEPTED, AND THEY DIDNT RIP LRO OUT OF THE OTHER DRIVERS. So our driver had dog-shit performance out of the box due to a lack of LRO as compared to 2 of our competitors. At that point I was pretty much done with Linux.

Compared to FreeBSD, where we had the best LRO in our driver, and a few other vendors copy/pasted it, and it wound up eventually being centralized as tcp_lro.c and driver-specific LRO ripped out.

1. 2 laptops and quite a few servers, some remote, some local

2. While I prefer FreeBSD, I use Linux too. I think it's important to know more than one OS. Also my employer standardized on RHEL, not much choice there

3. It seems to be the one where most of the (non-strictly-security-related) innovation takes place, and many of the OpenBSD security related innovation trickle down reasonably soon.

4. Docker (hate it, love it, but so much software is distributed in this way now), recent WiFi adapters/standards

5. ZFS (I know it's possible on Linux too now, but good luck convincing my employer, anything not covered by support is a tough cookie there), ZFS, ZFS, dtrace, its very nice update/upgrade process, a sane and quite rich base system, the Ports collection, its very nice handbook and documentation.

I use FreeBSD on my desktop. Not on a laptop because I hate laptops.

I love it because it's so simple and free of corporate influence compared to Linux. I hate corporations telling me what I should use (eg systemd).

I use FreeBSD because it has the biggest software support. Using it with KDE.

I love the ports collection, the separation between stable OS and rolling packages, excellent documentation, jails and ZFS and bectl.

I don't find anything lacking. But it would be nice to have Wayland working with KDE. Wayland itself works but KDE is a WIP.

> I don't find anything lacking. But it would be nice to have Wayland working with KDE. Wayland itself works but KDE is a WIP.

Wait, so KDE + Wayland on FreeBSD is unstable? Bummer, was planning to move my work laptop to FreeBSD, but only if Wayland is stable.

It's not unstable, it just won't start :)

I know the maintainers have their sights on this issue, but don't know the current status.

1. On my desktop.

2. As of right now, mostly curiosity. I have dabbled in FreeBSD on and off for years, and every time I install something from scratch I give it another go. In addition, the experience is more cohesive and "it just works" compared to almost every Linux distro I've ever used (the closest I've found is Slackware.) Let me explain.

When I say cohesive, I mean mostly that it has extremely well thought out documentation, and most common things you might want to do are in the FreeBSD handbook. Just go to the relevant chapter and read up.

When I say "it just works", I don't mean that the out of the box experience is just magically perfect and pre-configured like you might see on Windows or Ubuntu. What I mean is, the ports (and the pre-compiled packages made from them) are extremely reliable. You install them, and they work. Not to pick on Ubuntu specifically, but I have found this not to be the case more often on Ubuntu. Sometimes you install a package on Ubuntu, and it doesn't just work, and you might have to hunt down a config file to make some adjustments, its location may or may not be different from vanilla and may or may not be documented, or maybe it's a bad package and you're SOL.

Furthermore, I've found that upgrading ports and packages in FreeBSD doesn't break things anywhere near as often as on most Linux distros I've used. It's very reliable in that sense, and it just works.

3. This is older hardware for personal use, and I don't really need the enhanced security of OpenBSD, especially the enhanced security that comes with a performance cost.

As for NetBSD or DragonflyBSD, I have the impression, which may or may not be correct, that FreeBSD has better hardware support than either of them, and I want all of my peripherals to work.

4. I do most of my gaming on dedicated hardware these days (Steam Deck, Nintendo Switch), but it would be super great if the experience of playing games was more smooth. Thanks to the magic of Linux binary compatibility and Proton, you can totally play Windows and Linux games on FreeBSD with decent success, but the process of setting that up is awkward and ad-hoc.

5. See 2. Also, I like ZFS a lot, and I get the impression that getting up and running with ZFS on Linux is more of a hassle.

1. I use it on all of my servers.

2. FreeBSD offers a coherent base system with sane tools. pf is a godsend, and the ports collection is a good trade-off of configuration and simplicity. ZFS used to be a killer feature but is being integrated into Linux systems.

3. FreeBSD is designed around "general purpose" use and has a lot of backing from corporations like Netflix.

4. FreeBSD is missing a true container solution that is compatible with Docker (jails don't count). There has been some work on this as of the most recent BSDcon, so I'm hopeful.

5. I never want to look at iptables again.

EDIT: fix spacing

1. Servers, I'm partial to openBSD because of a saner IMO /etc and works-out-of-the-box (for me). My coworker is the more freebsd kind and since he does the work, his opinion prevails.

2. I moved houses 3 days ago. Had installed MX linux prior to moving on my desktop computer. Today, no DHCP IP on my computer. Man and apropos didn't help much. Ifconfig, arp don't exist. They require an apt install. I'm clueless as to what's happening. GUI tools didn't help much. So yeah to all predictable systems including windows.

3. VSCode (which when I last checked a week ago didn't work on freebsd either) and a lot of other programs which aren't there on OpenBSD. NetBSD haven't touched, so won't comment.

4. Userland stuff. BSDs in general pitch themselves as complete OSs, but the whole getting X working is like assembling a GUI stack IMO.

5. Continuing from the previous point (yeah, I'm a hypocrite), a few hundred MBs of RAM and very little GHzs on the CPU gets you a fully functional Desktop environment. If a browser is needed, add a bit more RAM and maybe some CPU.

PS: I use really old hardware

Vscode works totally fine, I use it all the time. It's in the packages and ports.
I might be wrong, but VSCode didn't work (for me) on 13.x and I ran across a few forum posts for others who couldn't get it done either. I had very little time to figure out the right "distro", and VSCode was a requirement. Went to distrowatch, and installed the top choice (please don't roast me about it).
Hmm weird. Did you try to just do "sudo pkg install vscode" ?

Don't try to download it from the website, this won't work as freebsd is not a supported platform but it's simply in the package collection and works great as such.

Ps I wasn't trying to roast you at all. I'm happy you found a solution even if it's not FreeBSD <3

In general that's one of the things I like about the FreeBSD community. We don't really have this push to make it mainstream or to advocate it. If you like it welcome to the club. If you don't, that's fine too. We have no desire to see "the year of FreeBSD on the desktop" generally speaking.

I really like that lack of evangelism which is so common on Linux especially because of the distro wars.

> BSDs in general pitch themselves as complete OSs, but the whole getting X working is like assembling a GUI stack IMO.

FWIW, NetBSD comes with X & ctwm out of the box. (But of course it's not the same as a whole DE you get in Debian.)

ifconfig (on most linuxes) has been deprecated because it doesn't support all network features anymore. You're meant to use "ip". It also does some of what used to be netstat/route. And there's 'ss' for the rest of netstat things.
1. I'm using FreeBSD-13 running on RPi2 (armv7) as DNS server to the SOHO network. I'm using dnscrypt. I'm serving 1-5 rps. From a stress-test the system can serve up to 43 DNS rps without problems.

2. Small overall footprint in terms of resources.

3. I went with NetBSD because of the even smaller footprint (see 1). NetBSD, according to the docs, requires just 40mb of RAM to run. Hit many walls with NetBSD and switched to FreeBSD.

4. PF is not working on armv7 for 13.2[^1]

5. The rc system, the complete control over the small-ish amount of processes running, pre-compiled binaries are nice. I must say that I enjoy the overall simplicity and clear-cut documentation, no need to go through hoops to understand _how_ DNS resolution works :-)

[^1]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265639

1. Servers 2. I use both, but use FreeBSD for bare metal nearly exclusively. Linux for virtual hosting because you can't always get FreeBSD. 3. I use both FBSD and OBSD. OpenBSD I use for router-type applications and for some standalone things. I use these instead of other *BSDs because I know them better. 4. Not really. 5. The consistency and stability of the OS from a usability perspective. Linux moves fast, e.g. systemd, while FreeBSD isn't fundamentally that much different from 20 years ago.

Also, FreeBSD has deeply entrenched support for ZFS, which is a game changer. It's available for Linux, but it's not quite in the same first-class citizen state as it is on FreeBSD.

I'd miss the documentation as well. Both Free and OpenBSD have astoundingly good documentation.

I feel it's quite first class citizen when all I need is 1 package installation on Ubuntu to start using zfs.
1. Server

2. License

3. I'd actually rather use some some mythic OS that was the combination of DragonflyBSD + OpenBSD ... but since that doesn't exist, FreeBSD just nudges ahead of either Dfly standalone or OpenBSD standalone.

4.

- turning all services (except ssh) off, by default. OpenBSD does this.

- move all non-core things out of the base, like sendmail (now DMA, what a nice import from DFly btw). Minimum base (OpenBSD)

- the base should only have one way to do things (don’t have 3 different firewalls in base like today)

- better defaults, https://vez.mrsk.me/freebsd-defaults.html

- something like io-uring from Linux, (async-sendfile is similar but that’s only for sendfile)

- Reproducible Builds = Nix

- vkernels = dragonflybsd

5. License, combined user land + kernel packaging

1. old computer found in a dumpster. Using it to learn about sysadmin and networking.

2. I installed it when centos was dead and I was looking for a stable os for a web server. My main computer runs Linux Mint.

3. It’s the first one I tried. Might check out open bds and dragonfly when I get into hosting and virtualization.

4. I’m just limited by lack of knowledge. But I like that there’s a more common path to follow, with great documentation. For the things I have working now, I feel like I have a better handle on my config choices vs in Linux distros I don’t always know if I’m doing things the Linux way or the Ubuntu way.

5. Several nights and weekends playing with ancient hardware and alternative software.

1. I use it on a NAS system. For years this was vanilla FreeBSD from 10 to 13. A few months back I replaced the system with TrueNAS Core which is based on FreeBSD 13, retaining the ZFS pools from the original installation. This system hosts storage and network shares, services hosted in jails such as databases, build slaves and artefact storage, and Windows virtual machines also hosting services and remote desktops.

2. First-class ZFS support, full NFSv4 ACL support which works with Samba and Windows ACLs and is a massive improvement upon POSIX.1e DRAFT ACLs.

3. No real preference, but ZFS support is (for me) the killer feature. Next are jails and Bhyve.

4. The main lack is the more comprehensive selection of drivers found on Linux. That said, it's pretty decent and I do find the overall quality of the drivers and system as a whole is better than Linux.

5. The system is engineered as a cohesive whole. While other BSDs might be similar, and perhaps Debian was attempting this a couple of decades back with its core design principles, most of the alternatives are lacking in this essential cohesiveness.

> 1. Where do you use FreeBSD? On your laptop? Remote servers? Routers?

Everything headless and sometimes kiosks.

> 2. Why do you use FreeBSD instead of Linux?

There's no such thing as "using Linux". You should ask why use FreeBSD over Debian, or why FreeBSD over Arch. Much easier questions with often quite obvious answers.

> 3. Why do you use FreeBSD instead of OpenBSD or another *BSD?

OpenBSD has no usable filesystem.

> 4. Do you find something lacking in FreeBSD? Is there something that is good in another OS that you'd like to see in FreeBSD?

Not really. Maybe swappiness and zram would be nice sometimes, but no biggie.

> 5. What is that one thing about FreeBSD that you would hate to lose if you were forced to use another OS?

Simplicity, coherence, and reliability.

1. Used in on my desktop for approx 8 years but migrated away a year or two back when I ran into one too many things that doesn't work well for desktop experience. Now it's only running on my nas.

2. I still use it on my nas because I'm familiar with it, has good documentation and very stable, and first class zfs support.

3. OpenBSD and DragonflyBSD both look quite fun to mess with but not the greatest desktop experiences, so that's why I always used FreeBSD in the past. Now I keep using it because familiarity and I know it will do what I need for my nas (mainly serving files and virtualization).

4. The desktop experience. It's doable if you're willing to give up some features and spend a bunch of time configuring some other ones but I've got other stuff to do these days.

5. Mainly I'd miss the first class zfs support.

1. Desktop which also functions as a server.

2. Centralized documentation, board of directors versus benevolent dictator for life, faster network stack, fewer GNU tools in the base install, ports tree, license.

3. ZFS, Linuxulator, documentation, community, familiarity.

4. Hardware support, especially power management (ACPI, SpeedStep, etc.) on laptops that are not ThinkPads or Dell Latitudes. Wayland.

5. The FreeBSD handbook.

The biggest problem with the BSDs are not the operating systems themselves, but the network effect surrounding GNU/Linux causing developers to completely overlook them, going on to create bodies of code that are not easy to port or in some cases impossible (Systemd, Wayland).

Wayland does work on FreeBSD. Just not with every DE yet. But it's certainly not impossible :)

Systemd might also be possible but not at all desirable imo.

2. ZFS, jails, stability (although the root reason at the time was "because people smarter than I recommended it"). In hindsight I can see how running some services works better on this system.
1. Servers

2. Better net throughput & lower CPU usage & ZFS. Y also really love the release eng cycle and release notes.

3. Using FreeBSD since 2001. Some performance test back then, better documentation...

4. A solution similar to docker.

5. ZFS

1. Servers, CPE, storage, and my Playstation 5

2. Coherent base install, license, ease of maintaining private variant

3. Personalities

4. The VMS distributed lock manager

5. style(9)

> 1. Where do you use FreeBSD? On your laptop? Remote servers? Routers?

Right now, I run FreeBSD on a few machines: my rented server, my two home servers which also do redundant PPPoE + NAT, a NAT machine at my MIL's that I also use for offsite backup of my home servers (I don't trust the rented server enough to run backups there), additionally, I have two mini PCs setup to run mythtv frontend (but the backend is not currently running, because our tv habits have changed). My desktops are Windows. My wireless access points and I think my managed network switches are Linux, so is the ISP provided DSL modem and LTE to network device (which I believe also runs embedded Android on the actual modem). I do have an old acer chromebook that boots FreeBSD, but I haven't used it in a while (my son used it for minecraft until an update changed a library and made it too hard to get working)

2. Why do you use FreeBSD instead of Linux?

I had great experiences with FreeBSD at Yahoo and WhatsApp, and bad experiences with systemd when Debian adopted it, so I decided to switch. And I've been mostly happy. Going between Yahoo and WhatsApp, I jumped about three major versions of FreeBSD in a weekend, and everything felt the same, but better. Jumping between major releases of Debian, lots of things feel different and sometimes better, sometimes worse, sometimes the same; I felt a lot of major changes I was dealing with were complicating my system to deal with use cases I didn't care about, and that a lot of the worse offenders were coming from the same developers and I was tired of dealing with their software and tired of trying to get things to work without it.

3. Why do you use FreeBSD instead of OpenBSD or another *BSD?

IMHO, FreeBSD is focused on being practical and also has a performance focus. OpenBSD has a very opinionated security focus, which I apprechiate, but features needed for performance are missing and unlikely to arrive; I'm more willing to compromise security than performance, so there you go. I mentally associate NetBSD with portability, but I'm not running FreeBSD on exotic equipment, and not interested in fighting with my embedded Linux devices to get them to run software of my choice: been there, done that, I'd rather tilt at different windmills now.

4. Do you find something lacking in FreeBSD? Is there something that is good in another OS that you'd like to see in FreeBSD?

Hardware support is hit or miss. I have usb 2.5G nics I can't use that I thought I'd be able to (but didn't check, and I have other uses for, so no big deal). HDMI audio on certain generations of intel chips is difficult because the graphics and audio drivers need to coordinate on clock settings, but there's no mechanism for that in FreeBSD, the Linux gpu driver is shimmed into the FreeBSD kernel, so that makes it trickier than it maybe already was. I had trouble getting FreeBSD installed on the chromebook I mentioned originally, but it did get fixed.

Not having a large user community makes it hard for hardware/software providers to get excited about providing support, because they don't get a sense of return on investment.

5. What is that one thing about FreeBSD that you would hate to lose if you were forced to use another OS?

Stability of experience. I know that 90-95% of the skills and knowledge I develop on FreeBSD will apply to future releases. I've had to learn firewalls on Linux three times (of course, FreeBSD also has three firewalls, but they are all supported and all kind of different; I simultaneously use pf, because of pfsync which provides for seamless NAT failover and ipfw to do traffic shaping and network delay simulstions; I've never used ipf, but I assume it provides value to some), and I work with mixed versions of Linux for work and have to deal with sometimes ip, sometimes ifconfig, sometimes netstat, sometimes ss on a regular basis, and it makes no sense. FreeBSD has the same needs for interface config and routing and socket listing, and made the existing tools do it, rather than new tools that work the same but different. Who has time for that? If FreeBSD ends, which I don't expect it to, I'll just go live in a cave with the final release and the best computer I can put together that's supported by the final release, and that will be my computing for the rest of my time. Honestly, while I sure computing will continue to develop, a big beefy box purchased today should get me a long time of continued use, so I'll be fine. When it falls apart, maybe there will be a retro marketplace, or maybe I'll move to assisted living.