Is FreeBSD a better choice for the desktop? (or dispelling myths)

It’s strange I should come across this article in one of my favorite blogs just after I switched from my FreeBSD desktop to Kubuntu. I’m also surprised at the lack of knowledge and the propagation of some long-standing myths about Linux and FreeBSD for that matter.

There are some ways that FreeBSD (or better put, BSD) is better than Linux – but the comparisons must be valid and appropriate without myths and falsehoods.

Perhaps the primary myth is that FreeBSD is a complete operating system and Linux is a boat-load of different distributions in all different flavors with different setups and so on. However, FreeBSD also has a large number of alternatives, including OpenBSD, NetBSD, PCBSD, DesktopBSD, PicoBSD, and Dragonfly BSD to name just a few.

Another comparison is that FreeBSD is put together by the FreeBSD Core team and that this is better than Linux (which has a “benevolent dictator” model). There’s no discussion of OpenBSD, for instance, which also follows this “benevolent dictator” model. There’s also no comparison to Red Hat Enterprise Linux, for example, which has a large number of people working towards putting together a complete distribution, not just the kernel.

The documentation is definitely an argument in favor of BSD – virtually everything that is in the system anywhere is documented in the online documentation, and the FreeBSD Handbook is without equal. It can be proven programmatically that there are commands in Red Hat (or other distributions) that are not documented. I daresay that the FreeBSD documentation beats other BSD variants as well.

Another benefit of FreeBSD specifically is the vast number of ports available. There are more ports for FreeBSD than any other system but Debian GNU/Linux. The sheer amount of packages available in both environments has made them appealing to me – and perhaps to others. Where else are you going to get Steel Bank Common Lisp for example? Both Debian and FreeBSD have it.

The article specifically asked about FreeBSD for the desktop: FreeBSD is definitely not ready for the desktop at all. When I installed it for my desktop (twice now), the basics are there certainly – but there were numerous problems that I had to overcome. Among them, I had to set up my own system bootsplash, and had to configure and set up my own login screen (kdm). USB devices plugged in weren’t properly recognized. Hibernation and sleep didn’t work. Flash doesn’t work. Unlike what has been said before, the drivers are much less available than they are for Linux: hardware manufacturers don’t see a need to support BSD, and many new UNIX users (and developers) don’t see a need to use anything but Linux. Wireless support is perhaps an exception, but that development is centered in OpenBSD, not FreeBSD.

There is also, in my mind, a benefit to BSD that goes often unmentioned: it has the smallest kernel of the open source UNIX and Linux kernels out there today. FreeBSD and OpenBSD will run in smaller environments that Linux won’t: on my 512M laptop, a Compaq Armada E500, Fedora 5 would crash during the install (not enough memory) – whereas the much more current FreeBSD 6.2 installed just fine.

Now, when I installed Kubuntu onto a Compaq nc4010 with 1G of memory, it went will – and it recognized everything – wireless, hibernate, bluetooth, USB devices, PCMCIA, video display, power capabilities, etc. – all without special configuration. (I might note that, here too, on this machine Fedora crashed – this time the Live USB Fedora 9 crashed during exit – sigh…) Preconfigured and tested support for Flash, Java, and MP3s was a click away.

When it comes to the desktop, FreeBSD has a long way to go (perhaps PCBSD is a lot better?). However, on the server end, I would propose that FreeBSD is a better way to go than Linux in many cases (except for OpenBSD might, in my opinion, be even better). It is unfortunate that none of the BSD variants are often considered for enterprise server use – especially considering FreeBSD is commonly found in NetCraft‘s list of top uptime.

29 thoughts on “Is FreeBSD a better choice for the desktop? (or dispelling myths)”

  1. Good, fair article. It is some work to run FreeBSD as a desktop. However, if you’re a computer enthusiast, that “work” is a lot of fun and educational as well.

    >”there were numerous problems that I had to overcome. … ”

    You must try PC-BSD as soon as possible. I haven’t played with it much (I already have everything running FreeBSD). But, I installed it on an old laptop with a friend (an Ubuntu fan) recently and he was “impressed”. I can’t speak to all of the issues you listed, but we saw no problems. Just having X and desktop configured is a big, big help for desktop users. And Flash 9 ran without a hitch (albeit, under wine).

  2. For me , the only reason, I don’t use any BSD for the desktop is the mess for flash. I think many of Linux users would switch with a correct flash support. I know it’s closed source but it is really a “must have feature” for a desktop. I tried the opensource project without sucess.

    I did not know PC-BSD has flash support. I will have a look at it.

  3. I wouldn’t give up on BSD for the desktop; from what I’ve seen, PC-BSD and DesktopBSD are both excellent choices. Personally, I’d try PC-BSD first.

    However, it may be a while before I get to install another desktop; I need a new server (and NAS) first…

  4. GNU/Linux user that is trying FreeBSD 7 here. I think FreeBSD is superior in many ways, however it does lack ease-of-setup when you first install it. The installer (sysinstall) didn’t set up networking properly, leaving me to manually set up networking for my Internet .

    Prior to trying FreeBSD I was using ArchLinux, which is a truly great distro.

    Right now i’m using KDE 4 with nvidia drivers and KVIRC compiling in the background, sound is working and the compile is not interfering with my desktop experience. I have not tested all my hardware but my needs are somewhat conservative in that regard.

    What I can note is that is features on FreeBSD 7 feel more “complete”! than on GNU/Linux 2.6.26, for example low-level details like cpufreq:

    On Linux the cpufreq support offers me 5 speeds: 2.1ghz, 2.0ghz, 1.8ghz, 1.1ghz, 1.0ghz

    On FreeBSD 7 I get these options: 2178mhz, 1980mhz, 1782mhz, 1559mhz, 1336mhz, 1113mhz, 990mhz, 866mhz, 742mhz, 618mhz, 495mhz, 371mhz, 247mhz, 123mhz

    Okay so i’m not getting “dynamic ticks” and such, but the features that are implemented are a lot more solid.

    Here is my views on how FreeBSD stacks up in general areas:

    Sound support: OSS may seem like garbage compared to ALSA on Linux, but FreeBSD has made it work and work well, OSS support for my sound card (ATI IXP 400) works wonderfully and handles multiple applications accessing it at once beautifully.

    Graphics: Okay graphics support currently has a big problem on AMD64 (no NVIDIA drivers yet) but on i386 NVIDIA drivers are equally as solid as with Linux – I am not quite sure about the state of ATI drivers.

    Desktop interactivity: FreeBSD 7.x seemed less responsive than GNU/Linux while compiling, until I discovered idprio – a tool to put the compiler in it’s place. Using idprio has resulted in the desktop feeling equally as responsive as GNU/Linux while compiling.

    Ease of Install: [expletives go here] – the install was painful, don’t even try it if you’re not comfortable with Gentoo, ArchLinux or Slackware GNU/Linux! Otherwise, keep a LiveCD to hand if things go bad (I wish I had one at the time!)

    FOSS Software availability: More than most distributions, I am confident it is more than everything except ArchLinux and Debian.

    Proprietary software availability: Almost everything that runs entirely in userland works under Linuxulator (Linux compatibility layer) with near-zero performance hit, in the case of virtualization avoid FreeBSD for now – unless you don’t need top performance or solid USB support, then there is QEMU with KQEMU.

    Multimedia Support: No native flash support however it runs under Linuxulator and Wine. FreeBSD otherwise supports every other format ArchLinux can to my knowledge.

    Performance: It “feels” better, I don’t have raw numbers and don’t intend to benchmark anything.

    Security: Less proactive security than Linux offers in terms of VDSO randomization and such, however it offers many different models of Mandatory Access Controls, more than vanilla Linux kernel offers, also for ports a tool called portaudit can be used to provide security info on all installed software regarding CVEs and such.

    Information availability: I have typed man [name random thing here] assuming there is no manpage, and to my delight there has been. Information via the ‘net in the form of howtos is sparse in comparison to other systems I have tried however.

    Hardware support: Supports all my hardware (PC: HP Pavillion Prod #:; HP Deskjet 940C Series Printer; HP w22 Monitor ) except my wireless mouse fails, the keyboard that uses the same receiver works fine however and it’s a minor loss.

    Misc: Seems easier for me to learn than GNU/Linux but once you’re used to that GNU userland, BSD stuff feels a tad alien!

  5. Clarification: “Supports” by definition does not mean thoroughly tested, for those who believe I am contradicting myself.

    I will update as I go along.

  6. I’ve been using OpenBSD as a desktop OS on one of my laptops, and it’s been fun using something different.

    The OpenBSD FAQ, at 290 pages, isn’t as detailed as the FreeBSD Handbook, but just about everything I’ve needed is somewhere in that FAQ.

    Only Gentoo has comparable documentation in the Linux world.

    On the laptop in question, a Compaq Armada 7770dmt, OpenBSD recognizes the hardware better than Linux, which is one of the reasons I’ve stuck with it for quite awhile.

    One difference between OpenBSD and FreeBSD is that in OpenBSD, the default install with X features the Fvwm window manager in addition to Twm, the latter of which I believe is the default WM in FreeBSD.

  7. 512MB of RAM a problem? Really? My 6 month budget laptop came with 512MB of RAM and I installed Kubuntu and Mandriva on it with no problem. I have since updated it though.

  8. I didn’t try either of those actually – but Fedora crashed, as I said. I’ve since put Kubuntu onto a Pentium M, and fell in love with it….

    1. I found that openoffice has developed some very irritating (perhaps even show-stopping) problems with recent debian kernels and that fedora 11, whilst good for openoffice, freezes randomly when using firefox 3.5. Makes linux absolutely useless to me.

  9. I should mention here that I’ve been installing onto a Pentium M laptop with 512M memory without problems; it was the Pentium laptop that caused the problems. Perhaps there is a link?

    I don’t know. I do know it seems like Python applications have problems with not enough memory – running yum in a 48M text environment was *very* slow, and slowed down the entire machine and generated lots of swapping.

  10. Martyn Hare said: “On FreeBSD 7 I get these options: 2178mhz, 1980mhz, 1782mhz, 1559mhz, 1336mhz, 1113mhz, 990mhz, 866mhz, 742mhz, 618mhz, 495mhz, 371mhz, 247mhz, 123mhz”
    123 mhz. Wow, really? That’s the sort of underclocking I want! What processor are you using? On my AMD X2, I get only two options for 1000 and 2500 mhz.

  11. freebsd 8.0 rc1 works really well on my eeepc 900a netbook. ive used linux for 3 years now and just recently removed ubuntu and installed freebsd. it took some effort to get everything up and running but it was well worth it. flash 10 works flawlessly, java, wireless, acpi ect…works well. freebsd 8 has proven to be a viable desktop system for me, i would recommend it to anyone who is willing to learn.

  12. i have used debian and free bsd side by side, debian wins in terms of ease of use and support but free bsd i find more interesting, why i do not know…. i have to say though you have to be a dedicated geek to really appreciate bsd… (same as linux) but more so with bsd…….you would need a much deeper tech background than the average vista or seven user. if you want bsd without doing the effort then your alternative will be to use an imac which is bsd based but of course the cost is rather prohibitive………….

    1. I always found FreeBSD (and its ilk) interesting because they are UNIX-derived (as contrasted with Linux, which is a UNIX clone). But that only carries so far; both UNIX and Linux are fascinating to me.

  13. I just like to point out that FreeBSD, OpenBSD and NetBSD all have a different kernel and can’t run binaries of each other. Which makes the different operating system. DragonFly was a fork of FreeBSD, but now the kernels are different. So you really can’t call this distros like in Linux. Not sure of PicoBSD. Calling the article “Is FreeBSD a better choice for the desktop? (or dispelling myths)” and then throwing in NetBSD and OpenBSD is deceptive. It would be like writing an article about AIX and then bring in HP/UX and IRIX specifics as if they were a part of AIX.

    PC-BSD could be called a distro of FreeBSD as it is basically FreeBSD with a default GUI install and different way of installing applications.

    DesktopBSD is FreeBSD that installs a GUI with some custom scripts, but other than that it is no different then FreeBSD. So it could be a distro. But, I believe this project stopped.

    1. Well said. I stand corrected.

      About PicoBSD: for a time, it was absorbed into the FreeBSD kernel as just another way of compiling the kernel. I don’t know its current state, however.

  14. i really disagree with the “it is unfortunate that none of the BSD variants are often considered for enterprise server use” … and many other very big companies uses FreeBSD and i heard that “The Matrix ” was rendered on a FreeBSD cluster .

  15. Long time using freebsd as a desktop system. My first *nix, and not too long ago, played with ubuntu 9 under vbox.

    My experience w/ fbsd:

    * Works great if you want a minimal system
    * Though it has a linuxulator, fair number of linux software make system calls that freebsd can’t map. Manifests itself in strange ways – if you’ve run flash 10 on fbsd you’ll know what I’m talking about.
    * Many java jni jars will include win/mac/solaris/linux – but not freebsd. You’ll need a second linux jre to use these jars – again you may run in to unsupported linux system calls. (lwjgl under linux uses alsa openal – problem)
    * Some programs like wine are designed around linux. If you’ve run wine under freebsd, getting something to run is the exception than the rule. Comparing ubuntu vs. freebsd, ubuntu wine is much much better.
    * linux bluetooth uses bluez, freebsd uses its own bluetooth stack. The gnome and kde freebsd team haven’t ported bluetooth software to work w/ freebsd stack.
    * general lack of drivers. usb cam support virtually nil – though some work is currently being done in this area.
    * took forever for VirtualBox to get ported to freebsd and some options don’t work – like audio recording and 3d accleration
    * to me, sometimes the package system(precompiled binaries) is a little quirky. Package A requires package B with config option Q turned on. However, installing B doesn’t have Q turned on. Running A will dump.
    *You’ll spend a lot more time on the command line than you would in ubuntu. Many features of gnome/kde are not functioning or have been just plain ripped out.
    * native java runs – but instrumentation isn’t implemented.
    * flash under linuxulator – many npviewer.bin process accumulate and sometimes pegs the cpu even when your browser is closed. Plan on occasionally issuing “killall npviewer.bin”
    * installing browser plugins aren’t straight forward, plan on using nspluginwrapper command line tool.
    * no gpgpu capability – unless you want to write shaders to render to texture to mimic gpgpu (yuck)
    * many ports will not create a .desktop file for installed application like ubuntu. This is required to launch the program from the start menu. Either, launch program from command line, or create a .desktop file and run update-desktop-database.

    ** Pretty much get used to being a 4th class citizen.

    *However, I do like the ports system. You can easily compile programs from source, you can turn on or off configuration options and dependencies are fetched and built automatically. So, you get what you want. Ubunutu users can miss out on some additional application features because of the one size fits all mentality.
    *native zfs for snapshotting, compression, and redundancy is really nice.
    *since freebsd caters to the tech types, native dtrace can come in handy.
    *freebsd documentation is stellar especially the handbook.
    *building custom kernels are straight forward.

  16. In my mind there’s only two choices

    Window or bsd/linux

    when I decide I wanna run unix, which is an idea ive gotten quite a few times in my lifetime, I always choose freebsd. 98% of the the desktop experience core, for me atleast, the other 2% is the windows manager you run ontop of it. When I’m running windows, pretty much the entire time I’m doing nothing more than running a browser, notepad, and that’s it. The rest of the experience is relying on the speed and stability of the core operating system…

  17. I think I read this article back in the day when I was first looking at trying out the BSD’s, and now I’ve a pretty good bit of experience using both linux and BSD. Firstly I have to say the linux is definitely better supportive of somethings. For example for me to use my DOD CAC card reader on BSD is pretty much impossible. I’m sure there is a way to make it work(if you know how please let me know) but I don’t have the programming/scripting skills necessary, or time for that matter, to make it work. Recently the BSD’s adopted a new means of viewing youtube videos in browser using mplayer. It works pretty well for me on Open and Freebsd. I pretty much just use old thinkpads with BSD nowadays but for the most part I have very little problems getting things to work. Wireless is the biggest concern for me, but since iwi works well I don’t have any real problems there. I basically just use my machines for doing homework, but it’s nice to have them set up to use as servers if I need them to be. Since I’m studying cybersecurity I think that using a *nix like system is beneficial in alot of ways. Anyways I pretty much stay away from big wm’s and heavy programs. I pretty much just use fluxbox, conky, pidgin/finch, mutt, vlc, aterm, libreoffice, midori and firefox just to name a few programs that I use on my machines. While linux works best for somethings I still prefer BSD as it funner to use.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: