Introduction + general question about FreeBSD vs. Linux hardware compatibility

Hi,

Since this is my first post here, let me introduce myself. I'm a 47-year old Austrian living in Montpezat, a small village in South France. I'm the owner of a small IT company that's specialized in Linux and free software. I've been 100 % GNU/Linux since 2001, and I'm quite proficient with all major and some minor distributions. For the last couple of years, I've been basing all my server and desktop solutions on Slackware Linux, with many add-ons and customizations.

I'm actually pondering the question about migrating to FreeBSD, because there are a few things that I come to like about it: a sense of perennity, the outstanding documentation, no systemd mess, etc. I'm using Slackware Linux mostly because in my everyday job, I have to install server or desktop systems on all kinds of hardware I get thrown at, from brand new to pathologically old: servers, desktop computers, laptops. Slackware's bone-headed installer is one of the rare installers that doesn't choke on any hardware, and everything can be configured by hand, which is good.

In a corner of my head, I have the prejudice that Linux has better hardware support than FreeBSD, but that is exactly that: a prejudice. So I thought the best thing to do was actually ask some FreeBSD users. Right, here goes. When migrating from Linux to FreeBSD, what kind of hardware can I expect to have trouble with, e. g. is there some hardware that works well under Linux but poorly under FreeBSD?

Cheers from the rainy South of France.
 
Well, Linux does have better hardware support - it's more ubiquitous. Server support is good (I don't think I've found anything from Dell or HP that FreeBSD didn't play well with). Desktop is narrower than Linux, but there's very little breakage - laptops aren't as easy in terms of ACPI support for things like suspend/resume, but that really is the extent of it - I've not found anything that flat out won't work.

Slackware is similar philosophically to FreeBSD, so you'll find that an easy fit, but like anything you have to give it time as it isn't Linux and the small differences take a while to appreciate.

What's your typical Linux desktop build?
 
What's your typical Linux desktop build?

For my clients as well as myself ("eat your own dog food"), I'm using my own customized blend of Slackware, which is presented in detail here: http://www.microlinux.fr/mled.php. It ships in two versions, a KDE-based standard edition and a lightweight Xfce-based edition. (Feel free to give it a spin, it's a free project.) On servers, I don't use a GUI, or if I do need one in some rare cases, I use WindowMaker. I'm curious if I can have a similar setup on FreeBSD. I'll give it a spin anyway, if only out of sheer curiosity.
 
The thing about hardware is, you only need one of anything, and chances are FreeBSD supports that one thing you need and that one thing is the most used, popular, etc. Rarely, you choose X hardware because you're used to it or everyone uses it but it doesn't work with FreeBSD but Y is just as good so ... go with Y. In my own case, hardware has never been an issue for what I do.

EDIT: All of the software you listed in your post is available and works well on FreeBSD.
 
My day job among other things involves working with BSDs (Open, Free, FreeNAS) and Red Hat. I manage a few dozen physical servers, mostly Super Micro servers and close to two dozen desktops. I vow that Linux doesn't have better hardware support on servers. Actually the only serious hardware problem I had this year was with Linux drivers for quite common enterprise level 1 Gigabit Intel controllers. Please see this thread. IPMI drivers might be disabled in the OpenBSD kernel but you should see the native OpenBSD sensor daemon. I bet you, you will never want to go back to IPMI. My file servers run FreeBSD. I tested DragonFlyBSD as well. OpenBSD is not suitable for large enterprise file servers (I could elaborate if necessary). While HAMMER is a gem, DragonFly is missing lots of infrastructure. You will do yourself a great favor getting right onto FreeBSD and learning ZFS (Linux ZFS sucks). If you must use hardware RAID and UFS LSI support for FreeBSD is almost on par with Linux (I am talking here $700 RAID cards, not cheap junk). Jails+Warden IMHO are light years ahead of LXC+Docker at least on Red Hat 6.6. There is just no comparison. On another hand if you need real virtualization there is nothing comparable to Linux KVM in the BSD world. Even VirtualBox didn't feel right for me on FreeBSD. NetBSD has Xen Dom0 but I would be careful putting my bets on NetBSD as that community seems in very serious troubles for number of years now.

So why do we use Red Hat then? Actually the biggest problem for my particular setting is not hardware support, but actually vendor software support. We use MATLAB, Oracle Java (which soon will run on FreeBSD) and few other things for which vendor support for FreeBSD is not existing. If your applications run on FreeBSD you will have a blast. If they don't then the OS will be totally worthless.

Desktop situation is a bit trickier. BSDs could make for a great special purpose desktop OS but for most people it is probably a bad chose. Linux definitely has better hardware support, or should I say more junk hardware is supported on Linux either by community or vendors. However if you have right hardware it boils down to applications which you will be running.

At work we run Red Hat on desktops because as I said earlier MATLAB is a must for us. Would I be able to get away with desktop BSDs at work if we didn't need MATLAB, probably not. People at my work expect Flash and similar things just to work. I run Red Hat on my desktop to be able to trouble shoot their installations (this message is submitted from Linux) but I personally use only OpenBSD on the desktop. I still would encourage to look at PCBSD in particular if robust file system is must. Check out M:Tier to see OpenBSD on corporate desktop.

Edit: I noticed that you are advertising a light Slackware desktop. There is nothing light about ZFS and PCBSD so your choices would be custom vanilla FreeBSD+UFS, OpenBSD desktop M:Tier type or if you want more radical solution with great file system a custom DragonFlyBSD desktop. Be warned, the DragonFly community is tiny and there is only so much that 10-15 people can really do no matter how capable they are.
 
Last edited:
Hardware support trouble spots mostly revolve around proprietary stuff. Many wireless cards are not supported because the vendors do not provide programming information. Broadcom is the most well-known.

Video cards is another area. At present, the X drivers do not support the latest Haswell and Radeon video. Of course they work in text console mode.

"Hardware support" is kind of a vague term anyway. Some people mean weird USB things, some mean 10G network cards.
 
For my clients as well as myself ("eat your own dog food"), I'm using my own customized blend of Slackware, which is presented in detail here: http://www.microlinux.fr/mled.php. It ships in two versions, a KDE-based standard edition and a lightweight Xfce-based edition. (Feel free to give it a spin, it's a free project.) On servers, I don't use a GUI, or if I do need one in some rare cases, I use WindowMaker. I'm curious if I can have a similar setup on FreeBSD. I'll give it a spin anyway, if only out of sheer curiosity.

You should be able to do most, if not all, of that.

If you want to avoid ports for desktop users (it bothers some) you could also set[]up your own pkg repository with a build server and roll the applications you want; the end users can then update from that repository.
 
Bonjour, Kiki Novak,

Here's the short cut version of my thoughts about this matter:

  • Servers - FreeBSD if any possible (where the rare "not possible" virtually never is to do with hardware/driver availability)
  • Non layman's desktop - possibly FreeBSD (it can do pretty everything IT pros need)
  • End users desktop - Linux (there are quite some reasons. You mentioned some of them)

From what I see you are pretty deep into Linux and while running FreeBSD on some servers should be a quite easily achievable goal for you, reaching a level of experience similar to your Linux knowledge and adequate to what your clients expect will take quite some time (you may experiment with your server but a client in trouble will certainly expect expertise and a quick solution).

Don't get me wrong, I love BSD (all three of them but mainly FreeBSD) and I do, in fact, develop on and first for FreeBSD with Linux being a secondary target even behind Solaris but on my partners box runs Linux (for a reason *g). FreeBSD in my minds eye is simply not ready for "throw it on no matter what box for end users" - neither is that FreeBSD's priority (from my perspective).
And BTW, I have e.g. a print server on a Geode 128MB microbox running on Alpine (Linux). While there have been micro-FreeBSDs that segment (micro-minimalistic boxes) is just another niche (of quite some niches) you might occasionally encounter where one would quite probably have a hard time with FreeBSD (but a simple job with Linux).

Oh and: Bienvenu ici!
 
Thanks everybody for all your detailed answers. Time to get my hands dirty. I'm ready to work through the handbook, step by step, taking notes. I expect spending a few months on this. For the beginning, I wonder if I should rather opt for FreeBSD 9.3 or 10.0 for experimentation. What do you suggest?
 
Use 10.1. Early snapshots are available now, the full release should be soon.

Why? Because 9.x is a legacy release. 10.0 added many new things, and 10.1 adds some important things like vt(4).
 
I respectfully disagree. For two reasons:

  1. Don't start such an adventure with a snapshot but with a proven stable release
  2. As an administrator upgrading will be a regular duty. Starting with 10.0 and freebsd-upgrade it soon to 10.1 will be one more experience under your belt (don't worry, it's not difficult. But occasionally newbies fall over it).
 

You are kidding right? This is the last step in the document you just linked.

After the source is updated, build and install world and kernel as normal. See Simplifying FreeBSD Kernel Config Files and Building FreeBSD World And Kernel.

I would never, let me repeat that, never build and install a new kernel on a production server which works without problems. Now let's go back to that fairy tale about FreeBSD developers running FreeBSD on Mac hardware full of Broadcom crap for which there are no drivers in BSD world :beer:
 
The key part of that document: "Effectively, -STABLE is the latest version of FreeBSD you can get without breaking installed software."

To explain further: the 10.1 prerelease and release candidate snapshots are merely versions of 10-STABLE.
 
I'm somewhat guilty as I've put the words "stable" and "release" next to each other, albeit "stable" meaning the common use of this word "as opposed to unstable". Mea culpa.

I've learned a lot from @wblock throughout the years. And chances are (about 99.999%) that he is perfectly right in what he says.

But:

I've been communicating with a FreeBSD newbie here. Accordingly the level was meant to roughly match FreeBSDs home page.

Quote:
LATEST RELEASES
I guess that about 99% of technical savvy but new to FreeBSD persons would read that roughly as "10.0 is the current stable release and 10.1 is a release candidate. So 10.0 is what I download and try". Because that, "what will I download and try", is next to certainly the question it boils down to for someone new to FreeBSD.

Again, @wblock is perfectly right. I'm not sure, however, whether "precision and perfection in FreeBSD specific terms and parlance" or worse, discussions about it, is helpful or welcoming to a FreeBSD newbie. Furthermore we should keep in mind that many of us (including myself as you might have noticed *g) aren't native-English speakers.

Let's not lose sight of friendliness and some generosity over our (well justified) desire for precision, particularly not at the main entrance.
 
To explain further: the 10.1 prerelease and release candidate snapshots are merely versions of 10-STABLE.

Close but not quite accurate. The 10.1-BETA* and 10.1-PRERELEASE* snapshots were made from stable/10 aka 10-STABLE. The release candidate snapshots 10.1-RC* are from the release engineering branch releng/10.1, this is the branch the final release 10.1-RELEASE will be made of and where all the maintenance work, security and errata fixes for 10.1 will go to.
 
Fine.

Right now, a new user is better off installing 10.1 than 10.0. A lot of problems with 10.0 have been fixed. New features like vt(4) are present. The fact that 10.1 has not been released yet is not a huge issue. FreeBSD releases are not like some other operating systems, where code that has not received a lot of outside testing suddenly appears. A FreeBSD release is essentially a snapshot of the most recent -STABLE version that has received a bit more testing than usual.
 
Greetings, Kiki Novak, and welcome to the forum!
FWIW I spin up Linux on bare metal 2-3 times /year, to keep up on what's happening. My choice of "flavors" -- or, "flavours" if you prefer, are Slack, and Debian.
From my experiences. The 2 most notable differences, and the ones that [largely] keep me on FreeBSD. Are;
  1. The system layout (file tree)
  2. Service management
I could probably add the fact that Linux really shelters the user from the OS. Which I think is also not so helpful.
I find that the FreeBSD system layout feels much more intuitive, and seems much more sensible/effective.
You will probably find it difficult initially, coming from Linux. Once you get past preconceptions (Linuxisms). I think you'll love the FreeBSD way of doing things. But I suspect it will be a struggle, for awhile. :)
Service management. Seems you alluded to this, yourself. If I understood you correctly; the FreeBSD way of doing things should come as a "breath of fresh air". :)
Sheltering the user; I very much dis-like the "Linux way" of a default installation. It greatly shields the user of all things going on within the system -- bouncing the user into a window manager immediately after boot, for example. Sure. You can open a terminal, and further explore/investigate. But I think it would be better to be left at the terminal, and given the choice to start a WM.
All-in-all, the biggest hurdle, will be the expectations you have currently acquired, running Linux all these years. You will likely find FreeBSD initially a bit frustrating, at first. But, for your own benefit, give it some time. Try to dispel all your notions of how it should be (based on your previous experience(s)). This will give you the ability to get an objective appreciation for the differences. Who knows, in the end, you may decide the FreeBSD way, is the correct way. ;)
OH. I almost forgot to address your hardware related question(s). I will say this. From my experience. Linux does support more hardware than FreeBSD. But it is important to note; the additional hardware is usually the more esoteric hardware, and because it supports it, isn't saying it supports it well. It just supports it. :)

I hope I've effectively addressed some of the questions you've raised, and wish you a good experience; both with FreeBSD, and these forums. :)

--Chris
 
Thanks for your detailed post. Actually, I don't find FreeBSD "difficult", but that's probably because I don't expect it to be Linux. Right now Slackware does everything I need it to do, on desktops as well as on servers, so I'm not in a hurry. I installed FreeBSD on a machine here in my office just out of curiosity, to learn it (and eventually move to it much later if I like it). I have a (paper) notebook, I take a couple hours a day to read through the handbook, experiment, take notes. The documentation is outstanding, which is one of the reasons FreeBSD seems easy.

Cheers,

Niki
 
Back
Top