DragonFly has been a favorite of mine for a while now. It is easily the most ambitious of the BSDs, without being so far ahead of the pack as Plan 9 (i.e. it's still usable).
However, this article is from 2010 and DragonFly recently released v3.0.2. They've also added significantly more features in the direction of a clustering OS. You could probably get more (and more up to date) information just from reading their "Features" page: http://www.dragonflybsd.org/features/
Came here to comment on the age of the article. Thanks for beating me to it.
Since you're a BSD user, can I ask you a few questions? I'm a Linux user with limited BSD experience (mostly running NetBSD on old and/or embedded hardware).
I mostly work on desktop/laptop systems in a workstation setting. Do you think BSD is a good choice for such platforms, or is it strictly a server thing?
I ran FreeBSD as my laptop and desktop OS for many years (1999 - 2006 ?). Regardless of what did and did not work, the keys for me were a working vmware environment and a working browser, and around 2005/2006 that no longer existed.
vmware 3.x for linux could be installed and run with linux compat on FreeBSD and it worked fine on FreeBSD 4.x, etc., but never did beyond that, and that (important) use case was allowed to rot. We tried[1].
And around that time the browser situation got really bad as well - every web 2.0 website was using flash for everything ... submit buttons, even, and browsing was always a pain after 2004 (I used both opera and firefox).
So I had to switch to OSX.
But now, I think the browser issue is solved - since everyone is moving away from flash and to HTML5, I would think the browsing experience would be much better ... all that is left is getting a working vmware environment back on FreeBSD, through linux compat.
This is relevant, since OSX is just getting weird ... I am going to keep going with snow leopard until that is impossible, but after that ...
I've been using FreeBSD as a primary workstation since '04 or so. Virtualbox works pretty well, as does Firefox 14, Chromium 20, and Opera 12. Flash and Java work fine on all 3. This is on FreeBSD 9.0/amd64.
For using *BSD as a desktop, going with something like PC-BSD would be a good choice. PC-BSD is basically a friendly FreeBSD with its own sort of package system called PBI while still maintaining the ability to use the ports system.
FreeBSD by itself can be used as a desktop OS but can become troublesome compiling everything (you can use pkg_add for installing pre-build packages). However, by using PC-BSD you won't need to do this.
Also, FreeBSD/PC-BSD does have the proprietary NVidia drivers. I do not think DragonFly/Net/OpenBSD has it.
PC-BSD is nice. But if you want to know how FreeBSD works, it is best to install it using the command line tools. For GUI-based systems akin to Ubuntu, there is not much difference between say Ubuntu and PC-BSD.
BSD on the desktop is possible, especially if you use something like FreeBSD where the hardware support is generally ahead of NetBSD, DragonFlyBSD and OpenBSD, and support for newer technologies is more available (binary drives from NVIDIA are pretty important as well if you want 3D acceleration), sadly though support is lacking for a lot of drivers. FreeBSD for example is just getting around to implementing the parts required for Intel graphics [1].
However compared to Linux I wouldn't use BSD as a desktop/laptop system. Linux is simply further along in supporting what is required for power saving, for clocking the cpu up and down, newer technologies and even older technologies if you are using older devices (in [1] for example, only gen4-6 graphics are supported, so if you have older Intel it won't work, or not correctly).
The other major issue is that many of the projects such as Gnome, KDE, XFCE and others have started using so many different Linux only interfaces for which no good documentation exists to replicate the functionality in the BSD's that you will find that certain features just don't work. See for example [2] which is a post from a Xfce developer on why XFCE had to drop support for the BSD's... on that same post you see a comment from Warner Losh the creator of devd(8) on FreeBSD asking where he can find good documentation on udev in Linux so that he can implement the compatibility stream on top of devd(8) [3].
No, I would not use BSD on the desktop unless it is by purchasing Mac OS X. Personally I am a HUGE FreeBSD fan, I absolutely love it. I run FreeBSD almost exclusively on my servers unless a specific piece of software very specifically requires Linux. I build software for FreeBSD, I deliver to clients FreeBSD installs and do consulting based on FreeBSD. FreeBSD on the server is absolutely fantastic, it is rock solid, I've had machines running for years on end without issues (no, not internet facing ones, yes they were all patched for remote exploits, local exploits I cared less about in this particular setting). Unfortunately I no longer run FreeBSD as my desktop, I used to for the longest time but unfortunately that time has come and gone.
Personally I am currently using a MacBook Pro running OS X 10.8 for my desktop/laptop needs, which provides me the same interfaces as FreeBSD does so it makes programming fairly simple. If it compiles/builds on Mac OS X it is almost guaranteed to compile/build on FreeBSD and run without issues.
See for example [2] which is a post from a Xfce developer on why XFCE had to drop support for the BSD's.
It seems like you can run XFCE on BSD, but some features are not supported.. That said, their about page isn't entirely honest, it should mention what features are Linux-only.
Thanks a lot for your comments. I love seeing anything FreeBSD related on HN these days as it's something I am newly interested in. I too run OS X locally (for years) but have been a Linux guy for as long as I can remember.
Do you have a suggestion on a solid FreeBSD VPS host? I really love Linode for my linux boxes and have been using them for years. That being said, I am very interested in moving towards FreeBSD for my personal servers. I'm so amped to learn more about it.
I have looked in the past for a FreeBSD VPS host but I could never find anything satisfactory or as large as Linode so that I had some semblance of knowledge that my instance wouldn't disappear tomorrow.
One of the big issues I see is that virtualising FreeBSD doesn't always work correctly, last I heard there were issues with FreeBSD and multi-processing on top of Xen for example [2], and there is still no native hypervisor for FreeBSD [1] (I honestly wish they would steal the KVM stuff from OpenIndiana, KVM on Linux absolutely rocks!) and that means you will always be running on top of some other OS or HyperVisor such as KVM, Xen, VirtualBox, and others, so the full stack support for running FreeBSD on top of FreeBSD is still unfortunately out of reach.
[1]: That isn't entirely true, there is a project named BHyVe that is working on this, but I haven't heard/seen any updates since early 2011. Also, it requires that you mask off the memory to be used for virtual machines, unlike KVM and others... See: http://wiki.freebsd.org/BHyVe
[2]: http://www.hungryhacker.com/os/freebsd-on-linode/ (See comment about requesting vcpu's to be set to 1: "Linodes default to vcpus=4, which will choke FreeBSD at the moment. They won’t increase this setting of course, but they will happily lower it for you. Simply give them your Linode # and ask them to reduce vcpus to 1 and they’ll make the change.") Do note that the author used FreeBSD 8.1 so it is entirely possible that the limitation is now removed with FreeBSD 9.0
I am facing the exact same problem with Intel GPUs you mentioned. So, currently I am running my video driver in Vesa mode (just 800 x 600 resolution). But, I would still prefer to use an open-source Unix-based system than a proprietory one.
I think that will depend on your person usage. For me, I currently use OpenBSD and I love it, but I don't care for the "desktop interface" and prefer a simple window manager (Evilwm) with a bunch of Xterms.
I mostly use wmii, firefox, emacs AND vim, and a bunch of compilers. But I also use things like virtualization, GPU compute and opengl, which are probably harder to get on BSD.
I would settle for Intel graphics, but I don't know if the HD4000 generation is supported yet.
I mostly work on desktop/laptop systems in a workstation setting. Do you think BSD is a good choice for such platforms, or is it strictly a server thing?
Guess it depends on you're hardware and what you want to do. I boot FreeBSD on my desktop when I want to code and Windows for most other things.
It would be mostly for coding, but things like OpenGL and virtualization are sometimes involved, so those might be dealbreakers. From what I read in the comments I got, it might be possible to use, but it's probably not going to be a pain free situation, so I'll stick with Linux and continue to watch BSD from the sidelines.
I've yet to play with it -- but I remember being glad to find a project that wanted to do clustering that at least in some ways is similar to (open)MOSIX.
I didn't realize MOSIX still existed/was updated, though!:
I too have the feeling that more new features are developed at DragonFly than at any of the other BSDs, but I still prefer FreeBSD because it seems to soak up most of the features of all the other BSDs (including OpenSolaris). And of course ZFS is usable now while I'm not so sure about HAMMER yet.
The two features I miss about openMosix were the distributed filesystem and process freezing. As nodes were auto-discovered, they would be populated in a global filesystem, so you could access the root filesystem of any node from a central tree. In addition there was a tool that would 'freeze' the state of a running process and any files that were open and save it all to a file, so you could 'thaw' it at any time and resume where it left off. This worked well if you only used i/o with the distributed filesystem, so you could thaw it into any system and it would just work. I guess this is an ok alternative: http://cryopid.berlios.de/
I would love to know how stable Dragonfly is and how its hardware support is. I have read that they regularly pull changes from FreeBSD. So I expect it to be almost on par with FreeBSD. But since they have significantly modified the FreeBSD kernel and they use NetBSD packages, I can understand if they lag behind given their limited resources. Ironically, I am running Linux on my laptop and I am using FreeBSD on my netboot, which I may replace with DragonFly.
In my experience (~1.5yrs on small servers and partially a laptop) it is very stable, especially if you stick to the release branches, but even running master everywhere I've rarely run into any problems on that end.
Using pkgsrc for software is actually a good thing as it is portability-oriented to begin with and you get access to almost all of the packages in there out of the box. DragonFly support in pkgsrc has very much improved over the last year or so since one of the DF devs became a NetBSD/pkgsrc committer.
As for hardware support… YMMV. In my experience drivers tend to lag behind a bit and may or may not work for you. Give it a try.
Thank you. I tried it and could not get OpenJDK installed. Also, it did not detect my wireless card. FOr now, I have postponed using it on my netbook. I will try it again when it has more driver support.
I would love to know how stable Dragonfly is and how its hardware support is. I have read that they regularly pull changes from FreeBSD. So I expect it to be almost on par with FreeBSD. But since they have significantly modified the kernel and they use NetBSD packages, I can understand if they lag behind given their limited resources. Ironically, I am running Linux on my laptop and I am using FreeBSD on my netboot, which I may replace with DragonFly.
However, this article is from 2010 and DragonFly recently released v3.0.2. They've also added significantly more features in the direction of a clustering OS. You could probably get more (and more up to date) information just from reading their "Features" page: http://www.dragonflybsd.org/features/