Hacker News new | past | comments | ask | show | jobs | submit login
FreeBSD is an amazing operating system (unixsheikh.com)
395 points by hggh 9 months ago | hide | past | favorite | 189 comments



Nice to see some love for FreeBSD. My intro to +nix in the mid 90s started with FreeBSD as well. Back then, I used to tag along with my dad in the summer to work occasionally (two working parents, and dad ran/runs a small telecom business). In the supply closet I saw a shelf with boxes lined up that all had a cool-ass little devil on them. Being interested in computers from my fathers influence, I asked him what the 'Devil Software' was in the storage closet, and he explained that it was an operating system like Windows sort-of (which at the time I was already well in to understanding how to re-install =), but that it ran on Voicemail Servers - stuff with specific needs - because it was very 'flexible in configuration', as he put it. He then gave me a voicemail box and the manual, and said he would give me $20 if I could get the 'Devil Software' installed on the machine from a blank HDD. This. was. huge. $20 to a 13 yr old was serious dough. Eventually I was successful (to his surprise? or dismay? haha since he was out 20 bucks). He was proud, and that made me proud, and that started the journey that is still ongoing to this day. Will note, father exploited me for cheap labor throughout my teens as my interest/experience with BSD, and eventually GNU/Linux increased =). Although I am a GNU person these days, FreeBSD is always close to my heart, and helped me understand the +nix ecosystem from an early age.


Just out of curiosity, how did your dad exploit you for cheap labor with BSD?

I mean I also did a lot of chores around the house and was the responsible IT repair guy of the house but I thought that's a pretty good deal for being housed, fed and clothed for 20 years.


I think it was meant more in a tongue in cheek manner. Obviously his dad gave him IT related tasks over the years, but I think both enjoyed it and I imagine it oftentimes was a learning experience for both of them.

I think generally kids can benefit and grow a lot from being treated and talked to like responsible adults sometimes, and not as if they were useless small people that have to be constantly supervised.


Perhaps 'exploit' wasn't the best choice of words :-D. He just had me install OSs/upgrade boxes from time to time after it was clear that I enjoyed it. It was win/win really.


That is a great story, and you have a cool dad!


I always struggled with linux, because there's so many of everything. It's too much choice. I don't really have many sysadmin skills and discovering FreeBSD has been a blessing for me. When I have a problem the documentation is... IDK, consistent? It's like I can follow it, and it's useful, same with forums and the helpful community.

I'm so thankful, honestly. I finally can have my VPSs without feeling like I'm dumb or I need to devote so much time and effort to sysadmin skills that I don't have nor I enjoy.

I still use Xubuntu in my laptop and Windows in my desktop, because of the lack of drivers and because they work out of the box (well, almost with Xubuntu), but still, for some reason I really feel confortable with FreeBSD, and this is coming from someone who just wants to spin DBs, sites, and cron scripts, and I don't have enough knowledge to appreciate jails and so many other things that other people likes about FreeBSD.

So guys, thank you.


> When I have a problem the documentation is... IDK, consistent?

Yeah, it's almost like developing the OS as a singular entity instead of a kernel with random bits tacked-on has some advantages...


When you start using all the Linux ports, it must create some mention pollution as their methodologies differ from FreeBSD. Is that true?


A few things put their files in the "wrong" place, or have their documentation arranged differently, sure. But for an application program that's not too much of a problem - as long as your OS is working and your system is generally functional, you can figure out what's wrong with a particular application at leisure. The time when you really need high-quality help fast (and ideally offline) is when your system won't boot or your networking is broken or your DE won't come up, and that stuff is all in the FreeBSD core system.


Desktop environments (and indeed X) are in the ports tree on FreeBSD. Unlike say OpenBSD which has X11 in the tar sets. Generally agree with your comment though.


I so much agree. I am using FreeBSD on home server (and few others) trying to push it to the limits. I just love it. It seems like order in all the chaos of operating systems (from windows kernel32 getting com objects to all the chaos in linux, from systemd to docker,...).

Please if you are trying to use freebsd TRY jails (to shorten tldr, use iocage). They are just great :)

And dont go desktop. Just isnt worth it. Not enough people troubling with gfx support. Keep it as it is. Server.


There is a variant of FreeBSD with terrific graphics support, and although limited to just one hardware vendor, there’s no doubting its popularity: it’s in every PlayStation 4.

There’s FreeBSD in almost every data centre. But it’s at a level most application developers just never see. Many infrastructure elements - from storage heads, to core routers, to enterprise application and security appliances - have chosen FreeBSD as the high quality, reliable, consistent, and liberally licensed base for their control plane software.

The point being, this is where FreeBSD has the greatest influence and adoption: as a platform, not the product, and not at all obvious even to those that thereby rely upon it.

That being said, yes it works great as the instance OS in EC2 and as a die-hard acolyte since 2.1-RELEASE you’ll pry my production application jails from my cold dead hands


> There is a variant of FreeBSD with terrific graphics support, and although limited to just one hardware vendor, there’s no doubting its popularity: it’s in every PlayStation 4.

And since FreeBSD is not GPL-licensed, it has exactly zero relevance as it means that no "lambda person" can use it, write code against it, etc... without paying the 2500$ of a devkit.

Sony could write their proprietary drivers for any OS - just look at nvidia which uses the same driver with just a microscopic shim across linux and windows.


What about the Nintendo Switch?


The Switch doesn't run on FreeBSD but rather a custom microkernel operating system called Horizon, which is an evolution of the OS on the Nintendo 3DS.

Nintendo do use some code from the FreeBSD kernel in the network / sockets stack though - https://switchbrew.org/wiki/Sockets_services


I don't think we need enumerate every known FreeBSD derivative to make the point.


I am a happy FreeBSD desktop user. There are Nvidia drivers. I have installed the drivers, enabled KDE5, and everything just works. Granted, you will need to edit a few configs, but nothing is out of ordinary, easier than in many Linux distributions like Arch.


Honestly I don't think FreeBSD should focus on desktop story at all. Resources, as limited as they are, should be spent on making FreeBSD an obvious and compelling choice for the servers.

Although FreeBSD looks cleaner and more consistent than Linux, it's not really clear why should one use it over Linux.

I hope the team will define strategic goals and try to develop some competitive advantage, even if it means focusing only on certain niches in the beginning. E.g. encouraging development of the OS modules in a safe language like Rust would probably lead to more stable system less vulnerable to exploits, and make it a more attractive choice for mission-critical deployments.


At least for me, being able to use Linux as daily driver on my desktop was instrumental at making me more proficient. At that point using it in the server became natural. Nothing beats the exercise of being able to use the same environment for everyday computing and for running "serious" services.

I guess a good desktop experience has the same utility to the freebsd ecosystem.


I've had the same experience. Used FreeBSD as a server OS long enough to switch to it as my main desktop OS. In return I've learned a lot more that has made server administration better.


I'm not sure I'd apply this to Windows, personally.


Companies started to use Windows NT servers in the 90s maybe because they cost less than UNIX servers from HP, IBM, Sun etc but also because they had a lot of technical staff which only knew Windows.


> Honestly I don't think FreeBSD should focus on desktop story at all.

I wish they didn't have to. I wish the open source community would rethink the desktop experience from the ground up so that we can have truly portable desktop environments that speak a common API. Everything is so tightly coupled to the platform and a spaghetti mess of packages and tools that I don't think it can be achieved any way else.

Apple has vertical integration of their OS, so they don't have to worry about supporting the world. But the state of things in open source land right now is a complete disaster. X vs Wayland, compositors? desktop environments? window managers?

For instance, check out the Manjaro doc on switching desktop environments: https://wiki.manjaro.org/index.php/Install_Desktop_Environme...

Why is this such a nightmare? There is an entire section called "The Risks of Using Multiple DEs".

There are 'two steps' for switching to XFCE:

1. Install a basic XFCE environment,

    sudo pacman -S xfce4-gtk3 xfce4-goodies xfce4-terminal network-manager-applet xfce4-notifyd-gtk3 xfce4-whiskermenu-plugin-gtk3 tumbler engrampa
2. Optional: Install and use LightDM, the recommended display manager for XFCE (record comes screeching to a halt -- what is a display manager and why is LightDM recommended?)

    sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings && sudo systemctl enable lightdm.service --force
This is relatively simple when you look at it here, but seeing this x 10 on the linked page where every single experience has a vastly different install and configuration process does not give me warm and fuzzy feelings.

Anyway I got no suggestions on how to improve this -- rant over. I just wish that we'd settle on a really rock solid abstraction and then get back to work rethinking and rebuilding UIs in Linux/BSD. Without vertical integration and/or monetary incentives I do not see this ever happening.


To be frank, setting up different DE, window managers, etc. is one of the few places where linux has little issue. The only problem being themes or having multiple bluetooth managers at the end of it. It's really just as easy as "sudo pacman xfce" and then selecting xfce from the display manager.

The real issue is that you have all those choices, but none of them are as fully featured without caveat as a similar DE for Mac or Windows. And there's the separation between window manager, desktop environment and display manager which is very confusing.


You're inflicting this upon yourself by using Manjaro. Installing a different DE on Ubuntu is either a Xubuntu-desktop metapackage, or a tasksel menu-item, away.

> X vs Wayland, compositors? desktop environments? window managers?

Nothing on this list, besides desktop environments, are things the user ever has to think about, unless they go out of their way to.


> Nothing on this list, besides desktop environments, are things the user ever has to think about, unless they go out of their way to.

It seems you haven’t tried to use Ubuntu as a desktop, especially not outside of command line. I didn’t care about anything on the list but had to make decisions often because, from my point of view, the GUI applications providing basic functionality just didn’t work. The answer was many times “it’s because it’s Wayland” or compositor or whatever. Horrible experience, when I've used (just an example) gpart for years, it worked, then install a new version of Ubuntu and it doesn't. Then I investigate why, because Wayland. And I really never wanted to care about Wayland and compositor. Then I want to record a screen interaction. Should be easy. Again... doesn't work, investigate... "it's because it doesn't on the new compositor whatever"... Etc.

I suspect that those who develop GUI on Linux don't use themselves what they produce, as a lot of GUI is often unusable, or, even worse, was usable once and then completely degrades, even with newer... compositors, or even some other kind of "improvement."


> I suspect that those who develop GUI on Linux don't use themselves what they produce, as a lot of GUI is often unusable, or, even worse, was usable once and then completely degrades, even with newer... compositors, or even some other kind of "improvement."

I'd agree with that. I'd go so far as to say most GUI developers on Linux may never have actually used a GUI in their lives and rely on second-hand descriptions of how they work. Basic drag and drop often doesn't work, clipboards are all over the place, window behavior is super inconsistent... at least PulseAudio, for all its many faults, finally solved the sound server problem.


1) There's no Ubuntu LTS release with Wayland as default display server.

2) Gparted doesn't work, because it wants to run as root. You should use an application, that runs only minimal, necessary parts as root, and the UI runs with your user's capabilities.

3) Wayland compositors do not provide unrestricted access to to composed display for very good reasons. They do provide an access through controlled API. That controlled API didn't stabilize into unified one among different compositors yet, so for screen recording you have to use compositor-specific utility for now. In Gnome-Wayland/Ubuntu, you have one available by default.

So yes, when you clean up the capabilities over time, the old stuff will break. But without breaking it, you cannot develop your system. Apple also breaks compatibility will old apps, even more than most Linux distros.


And yet I can still often run GUI programs written in 1995 on Windows 10 without recompilation. Hell, I can usually run GUI programs written for Windows in 1995 on Linux without recompilation. Don't pretend that compatibility is some kind of impossible dream.


> And yet I can still often run GUI programs written in 1995 on Windows 10 without recompilation.

Did you try it? Often, you cannot run even programs built in 2009 on Windows 10.

> Well, I can usually run GUI programs written for Windows in 1995 on Linux without recompilation.

You can run 1995 Linux binaries in Linux, provided a) you have the libraries they were linked against, b) they don't use direct hardware access ala svgalib c) they are not in a.out format, which was recently removed, due to nobody using it anymore.


> Did you try it? Often, you cannot run even programs built in 2009 on Windows 10.

Yeah, I actually do it all the time. There are some programs that don't work, particularly games, but for the most part it works fine.

> You can run 1995 Linux binaries in Linux, provided a) you have the libraries they were linked against

Including glibc, and take care to jump through the appropriate hoops to ensure the linker can find them because chances are they aren't in your repo.


> It seems you haven’t tried to use Ubuntu as a desktop, especially not outside of command line.

I'm typing this on Ubuntu.

> The answer was many times “it’s because it’s Wayland”

I don't know how that is an answer you've come across as a solution on Ubuntu, because Ubuntu does not use Wayland unless you go out of your way to use Wayland.

> Horrible experience, when I've used (just an example) gpart for years, it worked, then install a new version of Ubuntu and it doesn't. Then I investigate why, because Wayland

I've used gparted for more than a decade and never ran into an issue with it. Not sure why you have a problem with Wayland when Ubuntu doesn't ship with Wayland support.

> And I really never wanted to care about Wayland and compositor.

If you were using Ubuntu, you never had to care about Wayland, unless you inflicted that problem upon yourself by going out of your way to use Wayland.

> I suspect that those who develop GUI on Linux don't use themselves what they produce, as a lot of GUI is often unusable, or, even worse, was usable once and then completely degrades, even with newer... compositors, or even some other kind of "improvement."

I respectfully disagree.


> I wish the open source community would rethink the desktop experience from the ground up so that we can have truly portable desktop environments that speak a common API.

Every distribution does it their own way. The correct comparison of FreeBSD is not Linux; it is a Linux distribution such as for example Ubuntu, Manjaro, Arch, Debian, ...

These distributions each have a relevant market share, making the comparison fair.

Sure, there's overlap. If you want an OS which does it differently, consider having a look at NixOS.

> For instance, check out the Manjaro doc on switching desktop environments [...]

> There are 'two steps' for switching to XFCE:

> sudo pacman

> [...]

You're not supposed to execute commands which you don't understand. You're not supposed to execute sudo commands which you don't understand. Manjaro is supposed to be a user-friendly Arch version, so that is at odds with using CLI if you ask me.

I agree with you about the monetary incentive. Thus far, it does not appear anyone has succeeded, apart from Apple with iOS which is based on macOS which is based on FreeBSD. Jolla's Sailfish is struggling. Librem 5 with Purism's PureOS is delayed. Perhaps PinePhone?


Never going to happen, GNOME and KDE are nice, but their frameworks experience still fails short of other desktop environments, even after all these years.

They depend on too many moving pieces underneath them, and then there is the community hate how bloated they are, and how wonderful it is to reduce the experience to the twm days.


I don't necessarily agree with this. Running on servers was not a priority for Linux but it took off in servers. I think part of this is because a lot of people tried Linux at home, liked it a lot, and then brought it to work. Kind of like how iPhones got adopted in big companies.

I am worried that if FreeBSD completely ditches the desktop side completely, it will become one of the OSes that the next generation of developers would not even encounter unless it happens to be used at their jobs.


Naturally it took off on servers, GNU/Linux is primarily used as free beer UNIX, and it had corporate backing, including UNIX vendors that saw it as a means to cut down costs.

The BSDs were in legal problems back then, plus with their license, many of its users never contribute anything back.

Except for SGI and NeXT, there was hardly any desktop culture on UNIX land.


I think it’s because Linux had no Licensing costs, and I’m pretty sure history bares this out. I don’t think Linux on the desktop contributed at all to its server popularity

https://www.wired.com/2016/08/linux-took-web-now-taking-worl...


BSD are staying relevant for its license (and for that zfs) and if it wants more adoption, it would be because of maturity on server usage and adding more manpower on desktop isn't.

I would use BSD if the server usage is more friendlier but right now, o don't see any benefit than using them for zfs.


Rewriting to rust and leaving the desktop space completely seems like a recipe for losing the bigger focus so resources can be spent on a fun project with questionable utility value for users.


> Although FreeBSD looks cleaner and more consistent than Linux, it's not really clear why should one use it over Linux.

Stability has a value all of its own. Back when I used Linux, every couple of years my system would get broken and I'd have to spend a couple of days fixing it. And often the commands for doing that would have changed since last time. Now I use FreeBSD and what I've got working stays working.


I had a love-hate relationship with Linux until I tried Fedora Silverblue. It's rock-solid for me and I can rollback on breaking updates with only a reboot or try other WMs with a rebase. Plus toolbox is great for keeping transient development stuff contained in a mutable docker-like (podman) VM.


As a longtime BSD user (since BSDI) I switched to Linux on my desktop several years ago, mainly for GPU support. It then didn’t seem worth it to use FreeBSD on the server and have to remember 2 sets of admin tools. So Linux it is. I think it could succeed with a usable desktop with accelerated graphics.


I’m (sort of) in your boat, but made a different decision - I’m a NetBSD user by (explicit) choice, so I choose my hardware to suit - which includes passing on latest hardware because of GPU support :/


> ... mainly for GPU support.

Is the nVidia driver still available for FreeBSD?

Many years ago I used to run the Linux binary of RtCW on FreeBSD using the emulation layer. Worked like a charm and the FPS was even slightly higher.


Yep. I am using the nvidia driver on FreeBSD 12.

In terms of non-nvidia, a few years ago the port of the Intel driver was badly out of date and a recent laptop would be stuck on vesa. But that issue has been fixed as far as I can tell.


> Honestly I don't think FreeBSD should focus on desktop story at all. Resources, as limited as they are, should be spent on making FreeBSD an obvious and compelling choice for the servers

This is how things bitrot and driver support fades.


> Honestly I don't think FreeBSD should focus on desktop story at all.

Lest we despair, macOS was based on FreeBSD. Also, lest we become overly enthusiastic, macOS is about the only successful desktop based on FreeBSD (apologies to y’all Dragonfly folks).

I wish there was more diversity in this regard but I think it’s an unfortunate instance of collateral damage of the GPL vs permissive licensing wars.


The MacOS userland tools were taken from FreeBSD, along with a bunch of other stuff, but saying it was 'based on FreeBSD' is a bit of a stretch.


NextStep pulled from Berkley BSD, so some of that lineage is still around. Darwin has pulled from both NetBSD and FreeBSD, themselves derivatives from the Berkley distribution.


A shared lineage is a very different thing, however.


Ancillary devices like the old Airport routers also used NetBSD


Until the last few releases, macOS also used IPFW, the firewall explicitly created for FreeBSD, so there was more FreeBSD in macOS than just userland tools.


Sure, and that's why I wrote 'along with a bunch of other stuff'.

Writing something like 'MacOS is based on FreeBSD' implies a situation more like Sony's OrbisOS, which isn't the case with MacOS.


> macOS was based on FreeBSD

Can you share some source of your statement?


> Can you share some source of your statement?

https://en.wikipedia.org/wiki/Darwin_(operating_system)

There's probably very little commonality left nowadays though. However, if you go back to the earlier days (Panther, Tiger, Leopard) and look at the release notes of Mac OS at the time, and the release notes of the contemporary FreeBSD version of the time, you'll see very similar text: I remember word-for-word paragraphs about things like NFS fixes in both.


Read literally anything about Darwin, NextStep, XNU etc... and you will see "FreeBSD + Mach = OSX"


Most of the command line tools in MacOS were ported from FreeBSD. I believe they took TCP from BSD too, but I'm not sure if that's from Mach.


macOS was based on NextStep. That said, there is a lot of shared code, and Apple is known to have provided code back to the FreeBSD project.


Sure, look up A/UX and Jordan Hubbard, Apple's former Director of Unix Technology.

It won't be that many years before I imagine we'll start seeing people asking to cite how the next forms of ChromeOS or Android were related to Linux.


There's no A/UX in Mac OS X.


Nor in NeXT, but it shows a history of Unix/FreeBSD development at Apple prior to the hire of Hubbard during the Mac OS X era. That is to say, his status as co-founder of FreeBSD and Apple hiring him wasn't merely a coincidence.

And to clarify my example, Fuchsia is set to be a Linux-less functional rebuild of Android, but it'd be a bit myopic to point out that "there's no Linux in Fuchsia". It's like saying there's no Steve Jobs in any Apple products created after his death. Less perhaps, but not none.


I agree. Linux is struggling on the desktop and BSD shouldn't spend manpower unnecessarily for desktop when its primary strength is on the servers.

But it probably makes the developers feel better by dogfooding their own OS instead of using another one but we have enough virtualization that one can run server OS on top of their most productive desktop OS.


Nah, FreeBSD lost server story in the cloud. There is a very little story in on-prem. There is way more risk choosing FreeBSD as your server OS than as your desktop OS.

This is coming from someone who use FreeBSD on daily laptop and weekend desktop. I would just not pick FreeBSD at work for anything other than my personal-work VM.

Rust is not an answer. There is zero kernel development support from both rust and freebsd side. I know that because I'm working on KPI for both as well as multiple userspace library wrappers.


FreeBSD has seemed to find a niche in storage appliances. A few big names run servers on the same instances (eg Netflix).


This article makes several misstatements or factual errors, unfortunately.

> What I failed to realize back then was that FreeBSD was (and it still is) designed as a complete multi-purpose operating system meant to be setup and tuned according to specific use cases.

IMO, if it needs to be manually tuned, that's a bug, not a feature. (And I'm speaking as a FreeBSD developer on that.)

> FreeBSD sets the kernel and the base system apart from third party packages. This is unique to FreeBSD and none of the other BSDs do that.

Um, nope, this is how all of the BSDs do it.

> FreeBSD is installed only with the features you enable and nothing is running that you don't know about.

sendmail, cron, and ntpd run out of the box, to name a few.

> The FreeBSD code is meticulously maintained and very well documented.

Not really (especially in random drivers) and usually not (in the code, anyway). We have pretty decent manual pages.

> The FreeBSD rc system that reads this file understands dependencies between services and it can automatically launch them in parallel, or wait until one is finished before starting the things that it needs.

The parallelism part is not true.

> I believe it is important to understand that FreeBSD is not like a GNU/Linux distribution.

Not really true? In a lot of ways FreeBSD is like a GNU/Linux distribution; it just happens to bundle the equivalent of coreutils, binutils, gcc, etc with the kernel.

> FreeBSD is an operating system made by developers who are also system administrators.

Definitely not true (or at least, in no respect different than the developers of the broader Linux ecosystem).

> A Linux distribution is a collection of tools written by different groups of people, often with conflicting interests and priorities.

This is true! Especially for core bits of the system, like glibc and the kernel.

> A Linux distribution needs ..., additional third party software, the X Window System, a window manager, and a desktop environment, and it then needs to combine these different components into the resulting distribution.

This is of course no different than FreeBSD's ports system; we face the same integration challenges as Linux distributions.

> there are no conflicting interests in the [FreeBSD] project

Ha. ha. ha.


> > FreeBSD is an operating system made by developers who are also system administrators. > Definitely not true (or at least, in no respect different than the developers of the broader Linux ecosystem).

Maybe not so true today, but back when Linux first started, one of the main differences between Linux and FreeBSD was that BSD was written mostly by coders who worked as professional sysadmins, and Linux was written by coders who were mostly software engineers.

That's why Linux had all the new features, and BSD had all the stability. Because sysadmins cared about stability more than features.

It's sort of why their respective philosophies diverged.

I know because I spent a lot of time in the late 90s with the core committers who had been working on BSD since the 70s and 80s at Berkeley. They were all sysadmins.


As a FreeBSD developer, perhaps you know what tunables are being talked about for specific use cases?

Unrelated, I find it surprising that any major operating system these days need rebooting because "every third day or so otherwise the performance degraded a lot". Or maybe they just didn't increase the sysctl var kern.full_performance_days high enough ;)


I've been running Fedora for ~10 years (switching away from {Net,Free}BSD, I was fed-up to re-invent the wheel and the general poor design of the OS / high inertia of the community), and never rebooted once for "performance reason". My average uptime is in the couple of month, always for hardware / maintenance reason. Even my Windows 10 machines is never rebooted because of performance issue.

I don't think I've had much system failure / panics either.


I wouldn't worry too much about that claim. It seems like a poorly remembered claim about about a very old version. I'm sure somebody has the battlescars and could tell you what it was exactly.

My guesses would be a memory leak somewhere, some yucky disk controller bug I didn't run into, or possibly the TCP LAST_ACK state accumulation https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=25986

This has since been fixed, although it did take an annoyingly long time; but before it was fixed, you could address it by tuning socket buffers to be smaller --- it seemed to be less likely for clients to disappear with unacked data, but also, when they did, it wasn't as noticeable.

Most things are tuned pretty well by autotuning these days though. If your work is more I/O limited than CPU limited though, tuning is more likely to be useful.


> As a FreeBSD developer, perhaps you know what tunables are being talked about for specific use cases?

There are tons of knobs and I don't set or know anything about any of them in particular, sorry.

> Unrelated, I find it surprising that any major operating system these days need rebooting because "every third day or so otherwise the performance degraded a lot".

Me too. I assumed the author was talking about some (awful) historic bug rather than an ongoing issue they're having. Kinda sounds like a kernel memory leak, but it could be anything.


>> A Linux distribution is a collection of tools written by different groups of people, often with conflicting interests and priorities.

>This is true! Especially for core bits of the system, like glibc and the kernel.

Come on, of course this is blatantly false. There is plenty of politics. I've experienced it first hand. FreeBSD developers are most definitively driven by some agenda other than the selfless "the common good".

>> there are no conflicting interests in the [FreeBSD] project

> Ha. ha. ha.

My point exactly !


I didn't try to say FreeBSD doesn't have detracting politics (I don't think I said that) — you're absolutely right; it does.

My understanding, and let me know if I'm totally wrong, is that most glibc developers are not Linux kernel developers, and that most kernel developers are not glibc developers.

In FreeBSD, I think there's more crossover of developers working on both userspace and kernel components. The monorepo design helps foster that (again, subjective, IMO).


The monorepo is actually a downside as it weaken any form of backward compatibility one could legitimately expect. The general answer in these case "rebuild", but it completely ignores binary-only software which exists in the real world and which is to a large extend completely ignored by commiters. At some point, you want to spend CPU cycle on something else than "rebuilding world".

Also, there is de-facto no competition, short of a hard fork, in the software shipped. You can't just "switch to uclibc" if an embedded platform has memory constraint.


I don't know if you're familiar with FreeBSD's approach to backwards compatibility in general, or just making a general statement about monorepos. It doesn't seem like you're familiar with FreeBSD in practice; apologies if I guessed wrong.

FreeBSD has strong backwards compatibility at the shared library level, across all versions. Support for BSD 4.3 (as in, 1986, pre-FreeBSD) compatibility is slowly being phased out in 2019. Grep around for COMPAT_FREEBSD, for example. This compatibility (for existing stable releases) is by and large maintained in the development branch.

FreeBSD's also got a Linux syscall emulation layer, which implements (some of) the Linux kernel's (stable) ABI.

> The general answer in these case "rebuild", but it completely ignores binary-only software which exists in the real world and which is to a large extend completely ignored by commiters. At some point, you want to spend CPU cycle on something else than "rebuilding world".

That really isn't true. The point of the stable/ branches is the kernel KBI is stable for the lifetime of the branch.

> Also, there is de-facto no competition, short of a hard fork, in the software shipped.

Sure. But you can implement a patch and advocate for it against the existing implementation? Also, there is a lot of support for installing alternatives from ports. Doesn't seem that major of a gap.


> I don't know if you're familiar with FreeBSD's approach to backwards compatibility in general, or just making a general statement about monorepos.

I'm a former NetBSD developer, I left when I got fed up to re-invent the wheel. I spent many years after that supporting a commercial special purpose FreeBSD-basde distribution, and I got a fair share of conflicts on mailing list again "the old guard" (Warner & co) over various subsystem, and had to go as far as calling off an incompetent kernel committer working for Intel at the time. All my grief from ~10 years ago is publicly available in the mailing-list archives.

> FreeBSD's also got a Linux syscall emulation layer, which implements (some of) the Linux kernel's (stable) ABI.

IIRC, it is mostly vestigial, unless it has been going though a major updates in the past 10 years.

> That really isn't true. The point of the stable/ branches is the kernel KBI is stable for the lifetime of the branch.

Branch lifetime is irrelevant. Linux makes backward compatibility an utmost paradigm. I'm sure a 2.4 era binary will still work on 5.4, nearly 15 years later.

> Sure. But you can implement a patch and advocate for it against the existing implementation?

Unless you are a committer, the chance of getting ANY significant patch in is pretty much nil. As I mentioned previously, mailing list are NOT for discussing any significant changes, this is done behind the scene in private by a de-facto pseudo-"committee". The development process is closed to a few elites, generally small group of committers ruling over code sections. By the time any patch is ready, its author drops a +5000,-5000 lines turd^Wdiff that is utterly impossible to review. For lack of a better word, BSD are not remotely close to being open to outsiders. I know this by experience.


>Linux makes backward compatibility an utmost paradigm. I'm sure a 2.4 era binary will still work on 5.4, nearly 15 years later.

Why then is it that i'm locked to the kernel versions required by the binary blobs from proprietary vendors in the embedded space? Be it smartphones, home/SOHO routers, and so on.

Are they doing it wrong? Am I?

My ISP provided CPE runs Kernel 2.6.32.61 right now. Not to mention the crap uncounted Android devices (not mine, in the world out there) are running.


Linus mentions how they don't break userland binary compatibility all the time.

He also explicitly states that there has never and will never be a guarantee of kernel module binary compatibility.


FreeBSD was the first Unix I ever worked on professionally.

I agree, it's amazing, and I love admining it.

The only reason reddit wasn't on BSD was because of lack of package support and then when we moved to AWS, lack of BSD support in AWS. Although that's since been fixed, thanks in large part to CPercival, creator of TarSnap, yay!

The way it is set up just makes so much more sense to me, and tweaking the kernel is just so much easier.

Also the focus on stability over supporting the latest technologies is a big plus for business servers.


One of the neat things about working at Yahoo! when I did (which was when it still had the "!" as part of the branding) was knowing that we had a small number of FreeBSD core maintainers on the payroll, and that those folks could get hardware if they needed it for the FreeBSD project. Not to provide infrastructure to the project, but to give those core maintainers hardware to use and to add support for. We just provided them with the things they needed, almost no questions asked.

Those people didn't answer to anyone, they were just paid to work on the OS. Yahoo! made heavy use of FreeBSD at the time (almost 20 years ago, now) so it was decided that since we were using this free software so extensively that it would be good to give back to that community.

I wish this notion that giving a small amount of resources to open source projects that have saved your company millions of dollars per year was more common than it is. I don't know of any large company that does what Yahoo! did back then.

I work for a large company now, and as far as anyone I've asked can tell, we give exactly nothing to any of the hundreds or possibly thousands of open source projects we use daily, and it does not put a good feeling in my stomach.


At Netflix, in my larger work group, we have at least 7 FreeBSD committers, and one core team member (and I'm sure I'm forgetting some folks and I'm sorry!). We have employed (on specific contracts) many other committers and core team members.

Unlike Yahoo, we are accountable to Netflix's business goals of increasing our streaming customer's Quality of Experience while still maintaining or reducing the cost to deliver content. Frequently those goals align nicely with FreeBSD's goals, and we have contributed a great deal (async sendfile, kTLS, unmapped mbufs, epoch stabilization, NUMA work, RACK TCP, BBR TCP, TCP pacing, and tons of stuff I'm forgetting).


That's excellent, and I'm very happy to learn this. Thank you.


> At Netflix, in my larger work group, we have at least 7 FreeBSD committers

Oh that's good to hear. Reading Brendan Gregg's blog [1] I got the impression that Netflix had switched to Linux.

1. http://www.brendangregg.com/


Netflix has used Linux in EC2 for their C&C infrastructure and FreeBSD on their OCA content serving appliances since the beginning.


My experience with FreeBSD started more than 20 years ago when I built my first home file server, managing a whopping 200G of storage (huge for the time).

Since then I built several more generations of file server, all running FreeBSD and all absolutely rock solid. They all typically had a 3-5 year service life, with uptimes of 1-2 years at a time. Each of them were only replaced for capacity reasons, with the previous generation server typically serving as a backup target for the next one.

Around 2002, broadcast and cable TV was still a thing, and rudimentary PVRs were becoming available but were pricey with few features. So I decided to build my own.

I started with Linux, thinking that it would provide better hardware compatibility, but stability issues soon drove me back to FreeBSD, and I managed to create a very complete FreeBSD based PVR solution, complete with remote control, automatic program scheduling, multiple simultaneous recording and viewing streams, auto DVD ripping and very intuitive remote (web) and onscreen user interfaces. That thing ran rock solid for 10 years, until replaced by Netflix.

I guess the point I am trying to make is that I fully agree with the author. FreeBSD is in a different league than many other operating systems in terms of capability and stability, while being surprisingly compatible with a lot of hardware.


Me too, built BSD/MySQL server from scratch following the on-line documentation and everything just worked. Server is still running after 5 years with two outages for power problems. I think I chose FreeBSD at the time for the ZFS file system which was its big selling point over linux.


I bought my first Tivo in 1999. It ran Linux and a Tivo hacking community quickly appeared.

Added a second hard drive (just put it in your Linux PC first and run a command to format it)

Bought an ethernet adapter and ran a command to install the driver. It had an FTP server so I could just type "get Friends-10-21-1999.mpg" and have the unencrypted file on my computer. It also had a web server to schedule recordings or act as a remote control.

Never had an issue with it.


I would probably daily drive FreeBSD or OpenBSD if the desktop situation was better. I don't know how people survive open-source desktop environments.

I've spent the last couple of weeks trying to build a reasonable HiDPI desktop environment on a variety of open source platforms and nothing has the level of fit and finish I am looking for. So far I have been happiest with Elementary OS and their treatments to Gnome... but it preturbs me that getting a new rig setup is so fickle and unrepeatable. You can spend hours tweaking shit and experimenting with no reasonable way to save your changes to be applied later to a clean install or even a different platform. I wish I could check my entire configuration into git.

Would love if the hackers here would share their FreeBSD (or any Nix) desktop environment configuration (including window manager etc...)


I use FreeBSD when developing non-mobile work (which is mostly java backends + JavaScript react).

My environment is

- Hyper-V on windows laptop

- FreeBSD 12.1 as guest (zfs)

- FreeBSD packages I use for devel (installed simply with its standard 'pkg add') are: InteliJC, vscode, openjdk11, postgres12-server, node12, tmux

- Desktop env is: xrdp (to allow remote desktop into the VM), wmaker (window manager and wmakerconf to config it), qterminal or lilyterm

So I just use Remote Desktop from windows host, into FreeBSD VM using XRDP and just run like that.

I connect using 24 or 32 bit depth (via RDP protocol) and tend to run Darkish/pastel colors themes in Visual Code and IntelliJ.

---

I know this is not an ideal setup, but lack of support for mobile dev (android at least) prevents me from using FreeBSD directly on hardware...

When Running on native hardware, without VM, I tend to use Pop! Linux because of how beautiful it looks, on HiDPI or regular screens, and it is relatively easy for me to use, as somehow that window manager setup does not get in my way

I also usually install emacs 27 or 28, but those require a binary package download from

https://freebsd.pkgs.org/12/freebsd-ports-latest-i386/ghub-e...

Use Emacs rarely these days, because of its lackluster support for JavaScript+Flow tooling.

I would much rather use Emacs for everything.. but right now I just use it to write status reports (org mode)…


Sorry, forgot to add the ever useful vermaden FreeBSD Desktop Series blog, to answer the previous question

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


The trick is to not use a desktop environment. Stick to a simple WM and do your stuff in the terminal like back in the 90s and you're good. The DE stuff is basically more or less well-written GUI wrappers for command line tools anyway and the most common operations you do can be handled with simple bash aliases or, worst case, small shell scripts.

Some DE:s are ostensibly nice and polished, but my feeling is that they mainly provide a soft landing for Windows and Mac dropouts. There's always a few spots where the thin veneer starts peeling and, given you know how to operate it, you'll soon find yourself back in the terminal anyway.


I had great looking results with sway + alacritty + swaybar + firefox-wayland on Nixos 20.03-pre.


> Nixos 20.03-pre

Any special reason you're on unstable?


Oh, try running a Linux or BSD hypervisor and putting your desktop OS on that. Once you're decoupled from the hardware, you can start thinking about how you're going to backup or deploy your desktop configs (eg - Ansible) for your perfect WM or DE.

It's a lot easier than it sounds once you do it, but you do have to take some time surmounting the initial barrier to entry, which is mostly reading.

Remember, if you can click on it, it's probably just a wrapper around a documented utility that does the actual work. And if you can do basic webdev like HTML and CSS, you can customize your desktop through its configs.


KDE has the best HiDPI support I've seen, but I don't really care for KDE itself and as soon as I step outside the QT ecosystem all bets are off.


FreeBSD 12, Nvidia, KDE5. Everything works perfectly, including hidpi (unlike Gnome, there is a single desktop-wide DPI setting, which just happens to work).

I have used a primer from here: https://cooltrainer.org/a-freebsd-desktop-howto/


one of the reasons i gave up on DEs and now run only a tiling WM setup on a releaseless distro were the weirdly subtle changes and/or bugs associated with new releases, often changing GNOME in some form or fashion. KDE may fare better here, i am not sure.

in effect i have what i think you want, which is a way to bootstrap a new desktop/laptop based on a script (read: from a flash drive with minimal setup). however it is not as clean as what i see Nix offers. but, i don't have to worry about some "release" completely goofying up my setup. so it is nicely stable and deterministic to that extent.


I've got a arch i3 config I like. I've tuned a little over the years, but it's remained mostly the same. I keep the dotfiles in the same repo I keep useful shell scripts I've built, other program config files, etc. Many people, me included, gravitate towards the more "minimalist" linux configs for that reason. If I get time to make sure I haven't accidentally left a password in an old script, I'll make a public repo and link it.


With gnome, you can export the gconf database and check it into git if that's your thing.


This doesn't help you, but I just use a conventional DPI monitor and Xfce on FreeBSD works well without any special configuration.


I installed FreeBSD on my machine about a year ago, and went so far as to buy a copy of Absolute FreeBSD (3rd ed) by Michael Lucas. Much as I admire the FreeBSD ethos, I always end up coming back to Fedora for a very simple reason: the desktop experience on the BSD's has always been painful for me. First, FreeBSD didn't have the driver for my iGPU (Coffeelake), though Linux had support at least six months prior. FreeBSD devs to their credit were very helpful and welcoming when I tried troubleshooting my graphics situation, even writing a small patch for me. Then, when I installed the patched version of the driver and got video output, I had to be careful to maintain the patch. One time I accidentally upgraded all packages, overwriting the patched file and undoing the video support. Eventually I got fed up and just installed Fedora, which always works perfectly, runs like butter, and looks great. I get that the FreeBSD project is much smaller than GNU/Linux, and hardware vendors like Intel and Nvidia are not nearly as supportive in terms of contributing code/checking compatibility. I want to run FreeBSD, I really do. But at the end of the day I just don't have enough hours in the week to be troubleshooting my desktop, I'd rather spend those hours being productive (or being unproductive in a manner of my choosing). It's a great project - with a bit more love for newbies and the desktop experience I think FreeBSD could really shine. One option I think FreeBSD should consider is to offer separate server and workstation editions of each release, like Fedora does. This would help bring resources/attention to the desktop situation and provide an on-ramp for new users who want to try out FreeBSD without diving headfirst into config files and device drivers.


I don't think the FreeBSD team has the resources to maintain multiple editions for personal and server use, nor do I think it really fits their ethos. Unless you are trying to immerse yourself in it, I would avoid FreeBSD on your personal computer and use it for what it is, one of the best designed server operating systems in the world.


I see your point, but I'd like to make an observation: most people start of running OSS on their laptops/desktops, and only then move to server/cloud setups, usually sticking to the platform they already knew. For example, I started off installing Linux Mint on my desktop machine and college, way before I ever SSHed into a server setup. By giving up on the desktop, the BSDs are making it unlikely that the next generation of devs will ever both exploring their server offerings.


I wonder if it would make sense for FreeBSD to switch to Linux as the kernel.


A large part of FreeBSD is the kernel, and another large part is userland tools that support the kernel.

FreeBSD on the Linux kernel would be a lot of work and at the end of the day, I'm not quite sure Linux needs a BSD licensed ifconfig, etc?

If FreeBSD wanted to use Linux video drivers, that could be useful, but there would need to be a stable interface between the kernel and the driver, and that interface would need to make sense for FreeBSD. Stable kernel apis is an anti-goal for Linux, so that's a non-starter; I wonder if Windows drivers could be more amenable, ala NDISWrapper; but that would also be a lot of effort, and if there were effort for FreeBSD video work, I'd imagine the intel drivers would get ported faster.


Linux needs an ifconfig with the BSD command-line syntax and output style, that can handle IPv6 stuff, but that already exists now.

* https://unix.stackexchange.com/a/504084/5132


What would be the point? The reason to use a BSD is the kernel. If you change the kernel to a linux kernel, there's no reason to use it over a Linux distribution.


We have the opposite situation. Debian userland with FreeBSD kernel.

https://www.debian.org/ports/kfreebsd-gnu/


My experience with FreeBSD mirrors the author's quite a bit.

I bought that same book, installed it on a system, struggled like hell and went through it cover to cover. It was my "daily driver" for probably 5-6 years after that. The experience got me a job at an ISP running FreeBSD and later I started a web hosting business with FreeBSD backing.

I love it and love how easy and simple it is, but I too had to stray into Linux because that's where the crowd went. Hardware and software availability are key factors. I also think they should drop the focus on Desktop and go towards servers.

I've never administered servers that were as painless as those old BSD boxes. There is so much value in things that "just work" and documentation that's accurate. Yes there's a learning curve but it pays off exponentially.

Linux is being plagued by too many choices and too much change. RTFM doesn't do you a lot of good when it's out of date. It's only my decades of experience that help me figure things out when problems arise, I'd hate to be a beginner with Linux now. While Linux on the server is pretty tame the desktop world is out of control. I would like to see the FreeBSD folks just focus on making it the server/container host of choice.


I been daily driving FreeBSD for the last 3 or 4 years. I was frustrated by a lot of things in Linux at the time, no this wasn't just because of systemd. I don't actually mind systemd on my desktop.

Everything was very easy much like Debian maybe to get going. There's over 10,000 ports most are in package form at any time. Sometimes the build process fails and a package goes away for a short time, but you can always install it via ports.

My biggest gripe is and always will be the fact I can't use my spotify account on my FreeBSD desktop. I don't see this ever changing though. What I have done is gone back to relying on my local music collection a bit more again. I also bluetooth stream spotify from my phone to my receiver, but I'm lazy, hate phones, and don't generally like to do this.

It also has easiest operating system upgrade path out there that I have experienced. Just freebsd-update, reboot, done.

Jails are great, but they need work to be a bit more modern at this point. Docker has kinda showed some type of image repository is a nice feature. I'm not sure we'll see this right away, but BastilleBSD is working on some nice jails based solutions. Based off of FreeBSD, i'm pretty excited to possibly use this in the future.


> There's over 10,000 ports ...

For the record it is currently over 38,000:

* https://www.freshports.org


Mac is based on FreeBSD I think, and so far in the two years I use one I'm loving it.


I've been using Linux since the days of hand crafting Modeline entries for an unstable XFree86 running as root, and installed FreeBSD a number of times over the years but never really enjoyed the userspace as much as GNU. I simply preferred the ergonomics of GNU, it's what was more familiar since I was introduced to UNIX via GNU/Linux in my teens.

Having said that however, I absolutely loved the FreeBSD books by Marshall Kirk McKusick. The red hardcover Design and Implementation of FreeBSD book was my go-to bathroom reading for well over a year. I also was lucky enough to attend viewings of VHS recordings from his operating systems class featuring FreeBSD. Those tapes were something like $1k/tape if memory serves, a friend's employer bought the entire set and would host group viewings on weekends. Such great memories from those times, McKusick was humorous and never missed an opportunity to take jabs at emacs while explaining how paging and swap worked, poor little vi being paged out because someone started emacs, etc.

There's a lot to love about FreeBSD, I hope it continues to exist and can attract enough new talent to thrive in the future.


To me, FreeBSD represents the OS that gave me a realistic path I could travel to achieve my computing dreams.

I knew that to really achieve my ambitions, I'd need a way to store 50-100TB of data with high resilience and well-managed replication. Until I discovered FreeBSD and ZFS, I simply considered that kind of thing outside the realm of affordability and practicality.

But please know, fellow readers - it is affordable and it is practical. FreeBSD makes it so.


What were your ambitions that required such resilient storage if I may ask? Not being snarky or anything, genuinely curious.


As a long time fan of Gentoo, I felt very at home on FreeBSD, and quite liked how everything in it worked. I remember my frustration was more around software and hardware issues. In the end, it wasn't Linux; I felt left in the cold if I ever wanted to use something that wasn't made for FreeBSD.

FreeBSD itself was a pleasure and I wish I could use it more. I've not found a linux distribution I've found quite as nice.


I've been using FreeBSD as my Unix of choice for desktop PCs, Unix development inside VMs, and for servers since 2004 when a community college CS instructor told me about it and gave me an install disc. I love the documentation that ships with FreeBSD, including the high-quality man pages, the excellent handbook that explains how to perform many administrative tasks, and the collection of historical Unix documents that come from Bell Labs. I am also a fan of the book "The Design and Implementation of the FreeBSD Operating System." I have the second edition of this book and it's one of the most well-written operating systems textbooks available. I also like the quality of the source code.

With that being said, on laptops Linux and macOS are my Unix-based operating systems of choice because of increased hardware support, although on older laptops I do have success with FreeBSD. But if I need a Unix-based operating system for a desktop, a server, or a VM, my first choice is FreeBSD unless the software I need specifically requires Linux.


I have been trying Ubuntu for about a year now, taking a break from BSD. This is the longest I have ever used Linux continuously for personal use.

I always work entirely in RAM. Everything is mounted tmpfs. Occasionally I accidentally exceed the amount of RAM I have available. Some file grows too large.

One of the things I always liked about BSD was how well it handled this situation.^1 It had no lasting effect on the operation of the OS. The only things affected were running applications that needed write space. Thus all I had to worry about were the running daemons I use that are continuously writing to logs. The OS would otherwise continue to function.

Whereas when I run out of space in a tmpfs-mounted directory in Ubuntu, I get filesystem errors. I cannot simply remove the excessively large file, and expect to continue to work indefinitely. I get I/O errors. I am eventually forced to reboot. Obviously I am not well-versed on Linux but as far as I can tell so far, this is a known problem.

1. This was NetBSD but I assume that FreeBSD and OpenBSD would be no different.


Hm yeah, i recall NetBSD to be 'unbreakable' in that, and some other ways from personal experiences in the past.*

Anyways, there are Linux distros who specialize in this use case, and have sane and proven defaults tuned for that. Sometimes they seem a little bit 'ghettoish', but one can remove anything which is unnecessary, add needed stuff, even remaster in RAM and then rewrite that to another boot media. Or being lazy and just using an overlay to the stock image.

[1] https://antixlinux.com/ for instance works very well.

[2] http://grml.org/ is another Debian based one, altough a little bit lagging behind nowadays.

But many others also. [3] https://en.wikipedia.org/wiki/List_of_Linux_distributions_th...

Ubuntu is not a good starting point for that use case.

* Like carefully unplugging the SCSI controller from the running system, while it had no other available mass storage, watching the console being flooded with messages akin to 'Arrgh! I'm dying! Where is my...?', carefully reinserting the controller into the PCI-slot without causing shorts, console turning back to normal. And switching back to the running X as if nothing had happened. (And no file system damage in spite of having soft updates on UFS active, and running tasks with many open files)

Amazing.


Yes, this is a known problem for Linux desktop, and the upcoming EarlyOOM monitor is designed precisely to detect such OOM situations and handle them better, avoiding system unresponsiveness etc.

But maybe it's not yet ready for prime time. Fedora was about to add EarlyOOM in the 32 release, but they'll probably defer this until at least 33:

https://www.phoronix.com/scan.php?page=news_item&px=Fedora-F...


Thank you for mentioning this. As someone interested also in RAM-only, that is a strong additional point for BSD.


One "make world" and your world is changed.

Not to mention the absence of systemd and its overly-complex solution to non-problems.

FBSD-er since '98.


Anyone here using FreeBSD for JavaScript/Node/PHP dev? Curious if there are any common tools that don't work or any unexpected gotchas. I currently am using Ubuntu, but would be curious to give FreeBSD a try. I used to run it about a decade ago and always liked it.


VS Code can be installed via ports https://www.freshports.org/editors/vscode/


I hope FreeBSD we’ll get more love in the future. Just like Postgres vs MySQL.


NetFlix CDN HW that they drop at the local ISP level is a FreeBSD box that they have tuned to be able to fill 100G NICs no issue. There you go.


How well is it on a Macbook Pro? I just cant run FreeBSD for the same reason I cant be bothered to use Slackware Linux anymore. I love Slackware but too much manual labor when there are plenty of useful UI utilities to achieve more with less. I prefer user oriented KISS not just developer oriented KISS.


To be honest it’s probably not worth running FreeBSD on a laptop/desktop - it’s really a server operating system. If you are looking for a well engineered, stable, ‘traditional’ UNIX system sitting in a rack and happy with a terminal interface it’s an amazing OS. Lots of people however seem to be trying out on laptops/desktops and being disappointed which isn't a huge surprise.

(FreeBSD user since 2.0.5 - 1995)


Last time I checked (maybe a year ago), FreeBSD didn't have wifi drivers for a early 2015 Macbook. I think even Linux doesn't have drivers for the wifi card in the touchbar-era Macbooks, so I'd be very surprised if Freebase did.


Isn't Mac based upon freebsd? I've never used freebsd itself, so I'm not sure what the actual difference is besides ux.


Not really. The roots of OS X/MacOS are in NeXTSTEP. It uses a Mach microkernel that originated at CMU, as opposed to the FreeBSD kernel (or anything like it, really).

That said, a bunch of FreeBSD userland code and utilities were ported over to make the OS POSIX-ish.

It's probably easiest to think of a Mac as an amalgam of many different influences and operating behaviors, as opposed to a direct descendant of any one particular lineage.


The Darwin kernel in OSX has more than userland code taken from FreeBSD. "The kernel of Darwin is XNU, a hybrid kernel which uses OSFMK (Open Software Foundation Mach Kernel) from the OSF, various elements of FreeBSD (including the process model, network stack, and virtual file system)" [0]

[0] https://en.wikipedia.org/wiki/Darwin_%28operating_system%29



Could you explain this in more detail? It seems that the network stack, VFS, etc. from BSD are still heavily used?

https://github.com/apple/darwin-xnu/tree/master/bsd

Also, more recently they imported pf from OpenBSD:

https://github.com/apple/darwin-xnu/blob/master/bsd/net/pf.c

Or do you mean that they have recently taken more code from other BSDs than FreeBSD?


I mean that they have been moving away into more macOS specific code.

The POSIX network stack for example, is now deprecated, and one must use Network.framework for the more up to date features,

"Introducing Network.framework: A modern alternative to Sockets"

https://developer.apple.com/videos/play/wwdc2018/715/

"Optimizing Your App for Today’s Internet"

https://developer.apple.com/videos/play/wwdc2018/714/

Likewise the long term roadmap introduced in Catalina plans to turn macOS into a micro-kernel, by moving all kernel extensions into userspace drivers.


This is about right, and it's changed to be more this way over time. Early versions of OS X had user lands which were more BSD-like than they are now (and optional! Used to be you had to install the "BSD Subsystem" package from your install CD if you wanted to get a proper POSIX environment). For instance, early versions used BSD init, but that was replaced with launchd.


Early versions of OS X had user lands which were more BSD-like than they are now

They still have a lot of userland BSD parts. Including the very broken grep from FreeBSD (which is fixed in FreeBSD now IIRC):

    $ echo "abcdef" | /usr/bin/grep -o "^..."
    abc
    def
(I have to use the full path to grep, because I replace macOS grep by GNU grep.)


People really should complain to Apple about this.

* https://unix.stackexchange.com/a/398249/5132


> It uses a Mach microkernel that originated at CMU,

The macOS kernel is derived from what Apple chooses to release as XNU, which is Mach-ish.


DarwinBSD was/is the base of MacOS but many will argue that it is its own `thing` now.


Darwin is just a name for macOS / OSX. They're the same thing.

There may be confusion due to the fact that Apple used to publish a Darwin iso that you could boot on their ppc machines, but that's been a long time and OSX is still Darwin. If you run uname on a mac it will tell you that it's Darwin.


this is a common misconception. no, it's not.


FreeBSD is the reference for OS X, but they used different kernels. Many of the BSD flavored behaviors are/were retained, however.


What would be examples of the retained BSD flavored behaviors?


A couple examples off the top of my head:

Userland tools tend to be the BSD ones with BSD style arguments. e.g. BSD du vs GNU du, GNU requires size suffixes in uppercase, BSD takes lowercase. MacOS tends to include the more useful GNU tools though, like grep. Find is still BSD, and the missing GNU extensions occasionally causes grief.

SIGINFO is preserved. On BSD, pressing Ctrl+t in the terminal will print process status. Some processes add extra info, but it always gives at least CPU load and running time. This is a distinctly BSD feature.


I remember that book fondly - I'd dabbled with BSD/OS at one company, then at the next gig set up their production servers on a couple of FreeBSD boxes running Apache. The book was a constant companion at my desk. For running servers, FreeBSD was hard to beat back then!


A long time ago I toyed with the idea of a kickstarter campaign that would design and build a range of freebsd laptops - they would just work. fixed components and still having all the nice features like a /etc/resolv.conf you can edit


If only one of the BSDs had a container runtime, it's the only real showstopper for me


freebsd has 'containers' called jails, first released in ~2000, pre-empting solaris zones by four years, openvz by 5 years, lxc by 8 years, and docker by 10+ years.

jails were/are common in the webhosting and gaming industries, and nowdays they can be managed with infrastructure-as-code tools like ansible or puppet. when backed by zfs, they can be made to behave very similarly to docker containers.

with the demise of docker the company and the fractured ecosystem of competing container runtimes, specifications, kernel compatibility issues, and management tools, jails are worth testing out. iocage is one way to start managing them.


I know but I need an OCI runtime.


Docker was working[0]. But it depends what you want from containers I guess. Layers?

Most of the container use-cases that aren’t layers work fine under jails. But it’s a more primitive tool, definitely not as user friendly.

[0]: https://wiki.freebsd.org/Docker


>Most of the container use-cases that aren’t layers work fine under jails

I'm pretty sure that with unionfs you could get layer-ish equivalent for most use cases. Not going to question that it wouldn't be user friendly though


Need it to integrate with tooling I use, orchestrators, etc.


FreeBSD is awesome on the server and the ports package manager is amazing but wouldn't recommend it on desktop if you need driver software for new hardware since it won't be readily available.


https://www.dragonflybsd.org/ gotta mention it too, that it just exists is both surprising and great.


So, I adore the idea of FreeBSD. Anyone had much luck running it as a mostly exclusive VM on top of a more standard desktop OS as the hypervisor? Hyper-V, Xhyve, etc.


The FreeBSD release process includes producing virtual machine images if you want to get started they're linked from the download page: https://www.freebsd.org/where.html


It should run fine as a guest in any hypervisor.


I think OpenBSD is still more secure than FreeBSD


I somewhat agree with your statement but you should have explained further.

OpenBSD actively goes the extra mile in creating new security mitigations and ideas and the developers have always raised the difficulty of finding a 0day in the default install of OpenBSD. They are the creators of OpenSSH, kASLR, pledge(), W^X, etc and some of them are also the maintainers of LibreSSL.

You can still 'think' OpenBSD is more secure than FreeBSD, but I know it is still more secure.


It is, and also less useful


Eh, I am coding in C and Scheme rn under OpenBSD.

Iridium works, html5 video works, so do the videos under MPV. I've heard succesful stories from OpenBSD users with Vulkan under MESA. Even amdgpu works, but the -current release is better for that.

PPSSPP and some C# gaming works; so does N64, NES, SNES, PSX and even maybe DC emulation. A PS2 emulation is WIP, and it's not PCSX2. Then there is Dolphin, Nethack, ScummVM, lots of source ports...

You have LibreOffice if you want, among a lot of known ports https://openports.pl such as Python3, R, Node, and so on. No Netflix, but maybe with fake mobile UA's under Chromium you can override the DRM.

CWM+XClock+Xlock as my "DE". I don't need more.


Untrue. It works better than most people give it credit for.

I run quite a lot of stuff on OpenBSD and it works for the most part fine. Sure if you are running Netflix or something at mega scale it probably won't be any good, but it works quite well for a lot of hosting scenarios.

I can make a pretty decent desktop OS as well.


I think it's strictly true that OpenBSD doesn't do as much as FreeBSD. You may well argue that it's sufficient, but the claim isn't untrue.


Unproven that doing less is synonymous with less useful.


It can do the same stuff in a lot of cases. It won't scale as well but that is a different discussion. You can always find things another OS can't do.


FreeBSD does not have a focus on security[0]. Indeed, the defaults are notoriously insecure. There was a textfile floating around on how to bring it up to some standard but it eludes me. So it’s a low bar, but freebsd is great under low memory conditions, it has a rock solid filesystem baked in that is gold-supported, one of the best tracing tools known to mankind and very clear documentation.

That’s the power of freebsd. Not security.

[0]: https://vez.mrsk.me/freebsd-defaults.html


(The referenced document is authored by an OpenBSD developer with points to score and an axe to grind; probably best to learn what lessons you can from it, but don't take it as some objective truth about the world.)


Flipside of the coin... https://isopenbsdsecu.re/


As I've said elsewhere, that document is a combination of useful tidbits, outdated information, and unactionable (and often incorrect) commentary. As long as you can identify the useful bits and ignore the rest it might help you.


What a silly article. He mentions he ran a home FTP server on FreeBSD, switches it out for a Linux ftp server, because it needed a reboot every third day.

Meanwhile Walnut Creek cd-rom was setting bandwidth and uptime records with a P6-200 running FreeBSD as their ftp server


I love the simple and minimal site design of this website. Kudos!


Can you install the latest version of Java on it?


Yes, at the time for this writing OpenJDK 13.02 and 11.0.6 is available in ports


Yes, yes it is.


Porting FreeBSD to GPL can promote its user base;


Hell no.

I used to be all-in for GPL, but GPL is an ideology. Just like with philosophies/ideologies, one exclusively is never true enough for reality. There's absolutely nothing wrong with the BSD licensing: it allows multiple views on the world to co-exist, unlike GPL.


It can also drive away all its users.


If I want lot of work and an amazing operating system, I'd' ve built an operating system myself.

Since I'm a person with a job, run serious things and has a deadline, I use linux.


I like what works.

On servers, Linux seems to work. Maybe it's not as good as bsd in some cases, but I don't know those cases; and Linux has thus far worked.

Where bsd has worked for me is on macOS. I think that's a bit less about bsd and more about desktop/UI decisions dating back to the Steve Jobs days (idiosyncrasies aside). But I have doubts about how much the underlying OS had to do with the experience at the UI level.

Whether a bsd or linux, the desktop story is terrible compared to macOS. Even Windows has some advantage if certain app dependencies are considered. As a developer (who must still also perform some business tasks), macOS is the best option. Linux desktops are almost as good, with some big exceptions. BSD desktops might perhaps be on par with Linux, but they will fail on some of the development requirements.

I know competition is good for innovation, but at some point I would like to see the highly fragmented OSS desktop efforts consolidate. At this point, long after Jobs's death, macOS has fallen greatly in terms of quality and usability; so surpassing it isn't _that_ hard. Windows still doesn't, but I doubt it ever will. In fact, Windows has increased significantly as a development platform while still remaining horrible from a desktop user perspective. macOS has slipped. Linux has gained only slightly. BSD, who knows... but it cannot have improved more than Linux. Whether Linux or BSD, there's plenty of achievable gains to make if motivated OSS folks would consolidate more.


I think this comment is a perfect example of fundamental misunderstanding, when it comes to comparing Windows to MacOS. Their goals are totally different.

Mac is a great consumer os, but it is horrible for business and continuity. They will unpredictably remove features and pull support. Just recently, apple removed support for 32 bit applications, thrre are many games and other software that have stopped working with this upgrade. They have no maintainer, in some cases companies that have produced them are gone, actual developer might have kicked the bucket. Sure, you get a sleek product.

Compare this to Windows, where you can still run 16 bit software, and i have a game released in the 1999 that still works! Microsoft supports 3 parallel UI's: WinForms, WPF and UWP. That's why the system is bloated and looks a bit like a mess.

But that's also why I can write and application that solves a problem, and be confident that it will function for a decade or more without my involvement.

Working software should not rot without a team of developers behind it, constantly sprinting just to keep up with a platform moving out from under them.

You can see this most clearly in IoT space, where every year a few services are shut down, turning thousands of perfectly functional devices into useless paperweights.

Back to your comment at hand, I largely agree, I am a bit sick of the million options avaliable in linux for every given task, I wish they was more emphasis on getting the whole shebang to work together well and refining existing solutions, rather than creating yet take on a familiar problem.


For an OS that doesn't get any love it sure does show up here bi-weekly and is used as the backbone of all the biggest video streaming platforms...

I think there is this idea that Linux can't or won't achieve what BSD has but after being a sysadmin for years in Linux systems running behind pfSense I can say that this is all a rose colored vision of a time gone by from people who had the misfortune to learn Unix before linux. They are both full of silly paradigms and pitfalls, inconsistency and sometimes even order but in equal parts if you actually understand them and how they are built. The only difference I see at 20 years at it is one of them has hardware, software, and documentation for any contingency even if it's lackluster and the other is freeBSD. I admire the nostalgia but its gotten old...I would go so far as to say for pure practicality that I can do anything on Linux I can do on BSD but Im not nieve enough to claim the opposite.


> Linux has gained only slightly. BSD, who knows... but it cannot have improved more than Linux.

Why is that so impossible? Konqueror had a tiny fraction of the contributors that Mozilla had, but since it was better designed it was still able to get ahead, and now almost everyone is using a Konqueror-derived rendering engine. If they had "consolidated" with Mozilla we would have missed out on that.

Right now, FreeBSD does a lot of things better than Linux. ZFS is better than anything Linux can offer. Jails are still ahead of Linux containers. OSSv4 is still nicer than ALSA. FreeBSD ifconfig is still nicer than whatever you have to use to configure your wifi this week. I'm not going to switch to a worse OS, and I'm not sure why you'd expect anyone else to.


I hear this all the time but see no proof.

Why are jails better and if so why did they lose to containers?

Why is OSS better when alsa could probably interface with one of those talking fish on the wall if you ask it nicely.

Why is ZFS any better than the Linux implementation if freeBSD is backporting the Linux version now.

Why is ifconfig better than network manager when there are no drivers for half the chipsets anyway.

Linux is practical, and I think hate for it comes from BSD users frustrated that they dont want to learn how another kernel works but I share none of the problems BSD users often claim. Your hangup is on a distro or a filesystem but never the actual Linux kernel which it seems to me nobody bothers to learn before trashing anyway.


> Why are jails better and if so why did they lose to containers?

They're better because they have actual security/isolation engineering. They lost because all people care about is having some kind of backend for orchestration systems that's capable of running Python. Even on Linux you can find all sorts of technical arguments about one form of container being better than another, but no-one actually cares beyond "does kubernetes use it as a backend? y/n".

> Why is OSS better when alsa could probably interface with one of those talking fish on the wall if you ask it nicely.

It offers a proper unixy API where you just have bytestream interfaces that you write to. You can use ordinary command line tools rather than needing a bunch of specialised programs.

> Why is ZFS any better than the Linux implementation if freeBSD is backporting the Linux version now.

There are more maintainers for ZFS on Linux - which should tell you something about how much better ZFS is than any Linux-native filesystem. The ZfsOnLinux codebase is fine, and if the licensing issues were ever resolved then one of the biggest reasons to use FreeBSD would go away.

> Why is ifconfig better than network manager when there are no drivers for half the chipsets anyway.

Because it works the way you'd expect, and stuff that works continues to work. E.g. fun story: Linux can't connect to my work VPN, because there's no way to pass a one time passcode through to a VPN login. Even though I've got the same version of OpenVPN installed on both FreeBSD and Linux, which has support for one time passcodes, on Linux that gets lost somewhere in the tightly-coupled layers in between that are necessary to have a network connection there.

> Linux is practical, and I think hate for it comes from BSD users frustrated that they dont want to learn how another kernel works but I share none of the problems BSD users often claim. Your hangup is on a distro or a filesystem but never the actual Linux kernel which it seems to me nobody bothers to learn before trashing anyway.

ZFS support is a kernel licensing issue. Jails are something that would require kernel-level support. Beyond that "Linux" is a pretty standard synecdoche for the whole OS; if there were reputable non-systemd/networkmanager/wayland distributions that would solve some of my problems, sure, but there aren't (I looked at installing Devuan but it seems to have already collapsed).


> Linux can't connect to my work VPN, because there's no way to pass a one time passcode through to a VPN login. Even though I've got the same version of OpenVPN installed on both FreeBSD and Linux, which has support for one time passcodes, on Linux that gets lost somewhere in the tightly-coupled layers in between that are necessary to have a network connection there.

I suspect that you are missing whatever the gui ovpn plugin uses for askpass (should be in the log, complaining). Try starting the vpn from cli ('nmcli connection up $conname'); nmcli is pretty good at asking for info it needs, without the 'tightly-coupled layers' getting into its way.


Nope - just tried it, "Error: Connection activation failed: Unknown reason". There's a bug in the Ubuntu bug tracker that's been there for a year or two with no solution.


> ZFS is better than anything Linux can offer.

It looks like Ubuntu has offered ZFS since 16.04.

https://wiki.ubuntu.com/ZFS


As per the recent thread here, there are serious legal concerns about what they're doing.


Linux works. Docker works. Node.js works. VSCode works.

Until your competitor leverages outlier technologies to outcompete you. That's basically what Paul Graham did in the nineties :)




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: