BSD/AOS DAILY DRIVER TEST

A good friend of mine recently gave me a stack of old SSD's he wasn't using. I figured it was a good opportunity to install a bunch of alternative operating systems on my rusty ThinkPad T430, and go to town with them. (literally) I headed down to my local library with a bunch of disks and started experimenting. (you'd think it would be awkward to fiddle with computer gear and alternative operating systems in a public place - but I think the librarians were actually relieved to be in the presence of a slightly more normal person then their usual clientele) I also did a wifi-crawl around various cafes and performed numerous other usability tests. The purpose of which was to see how well these operating systems would function as a daily driver. Very quickly initial testing demonstrated how brutally difficult it is for a non-mainstream OS to even boot commodity hardware. As for connecting to a public wifi, only one candidate managed to do it 100% successfully. (Linux did not)

The test includes the BSD's and other open source alternative operating systems ("AOS"). There are many systems that could be fun to play with, but since I'm looking for a daily driver candidate, I'll only be looking at actively developed and reasonably feature rich systems. (they'll also need to be free since I'm a cheapskate) However, since we are talking about alternative systems, I'll give the definition of "daily driver" a wide birth; If it can boot, connect to a wireless network, handle multimedia and basic office tasks, play a few games, etc, then sure, it can work as a daily driver. (for my needs, it is also essential that the system allows flexible automation)

Of course, it's easy to set up arbitrary requirements that will make all candidates fail; If we require PhotoShop and annotated PDF's from our daily driver, no opensource system will qualify. If we require Netflix, only Linux will. If we require Zoom, we can add FreeBSD and, plausibly, OpenBSD to the mix. But such requirements assume that a daily driver must include heavy multimedia consumerism and meet 100% of our computing needs. I disagree. If you cannot play an Xbox game on your Mac, it does not follow that a Mac cannot function as a daily driver, does it? It is OK to use more then one operating system in our day and age. The following is a rundown of how the various operating systems handled the daily driver test, more or less in the order of how well they performed.

Disclaimer: This is merely a quick rundown of how well these systems worked as a daily driver for me, sprinkled with commentary and my own opinions. I am not an expert in any of these systems, and your own experiences and opinions may very well differ from mine. I hope you find my article enjoyable, but I encourage you to experiment and draw your own conclusions.

Those that succeeded

FreeBSD

The obvious Linux alternative is FreeBSD, if any operating system can provide the same software and functionality as Linux, then it is FreeBSD. It is the only non-Linux alternative here that serious gamers would even consider for instance. Beyond compatibility, FreeBSD has the best documentation on the planet, incredible performance, and serious enterprise features, such as ZFS, DTrace and jails. Primarily though, the advantage of BSD over Linux, is that it's simpler and more coherent, since the entire base operating system is designed by the same development team.

That said, Linux software is ported to FreeBSD after all, so you should expect fewer and older applications compared to Linux, and you'll find that hardware support is not quite as broad. The most painful issue I had was getting the wifi to work. Being a server oriented system, it seems that wireless networking is not prioritized by the FreeBSD devs. Out of all the successful systems listed here, FreeBSD had the worst wireless network support, at least in my tests.

Another challenge, probably due to its server orientation, is that initial installation and configuration is very tedious. Although documented well enough, setting up working graphics is surprisingly hairy. (with the exception of DragonFly BSD, far worse then any other candidate here) If you plan on using FreeBSD as a casual desktop system, my recommendation is to use one of the desktop distributions, such as GhostBSD or NomadBSD. It's a shame that TrueOS (formerly PC-BSD) discontinued due to server-side demands on the company and lacking community interest, but it is symptomatic of the underlying problem.

MidnightBSD - plausibly

We could also mention MidnightBSD is passing here. It is an early FreeBSD fork with the goal of making a user-friendly desktop. Although presented as a stand-alone operating system, it is perhaps more accurate to say that MidnightBSD is a bastardized, if not to say beastly, FreeBSD hack, with weird and undocumented alterations. After installation you're offered to set up a desktop and graphics drivers, but the driver failed to work in my tests. I did manage to fix the configuration, no thanks to the virtually non-existent MidnightBSD documentation. (wifi is reassuringly broken though, just as in FreeBSD) I had little success with the default package manager, mport, but the 3rd party package manager /raven/sbin/ravensw worked better. It is technically possible to use this FreeBSD-spin as a daily driver, in my estimation it is more or less on par with DragonFly BSD in this respect.*

OpenBSD

Being less popular then FreeBSD, one would assume that OpenBSD is harder to set up and use. Quite the contrary! After a 5 min installation, chiefly hitting the Return key a few of times, you reboot into a graphical desktop,* with wifi, sound, hibernation, everything works flawlessly. It's worth mentioning that OpenBSD was the only system that handled the public networks I tested 100% successfully. It varied how the other systems handled the test, but overall, all of them, including Linux, had about a 50% success rate. OpenBSD's main claim to fame is its renowned security, but what I value most, is it's ease of use and stability. In fact, after using it a few years, it can be a real jolt to play around with Linux, and see how unstable and messy it really is!

That said, OpenBSD does have limitations - hard ones! It does not support bluetooth, drivers from Nvidia, wine, Linux emulation, ZFS and KVM among other things. These things are not just poorly supported, they are actively rejected by the devs. The OpenBSD developers are highly opinionated focused on what they want. This is very good for stability, very bad for compatibility, and you'll find that the repo is four times smaller then that of FreeBSD, twice as small as the NetBSD. Finally, though the OS itself is very stable, large ports, such as GNOME or heavy browsing, can frequently crash - often due to OpenBSD's renowned "security."

NetBSD

Out of the big three, NetBSD is the underdog. It has very few developers and users, and this lack of popularity can be felt in many ways. The repo is only half the size of FreeBSD, and the applications that are available are often older and more glitchy. As an example, it took a long time before wine 9 was ported. And even though it's available now, it does not have the WoW64 feature, nor can you run the 32-bit wine package in amd64 NetBSD. (and wine in i386 NetBSD crashes for some reason) So your best bet for Windows gaming is to run those in a QEMU virtual machine. NetBSD is famous for having support for very oddball hardware. It's arguably the best candidate today for 32-bit systems, and a no-brainer if you need to install a free UNIX-like system on an old PowerPC Mac, Sun Spark or Nintendo Wii. (no, really!) Another example of its insane portability is that the package manager, pkgsrc works across different operating systems. It's kinda neat to use pkgsrc on your Linux box, but it's a lifesaver on a Haiku or Solaris machine!

On modern commodity hardware however, NetBSD support is not stellar. So you'll likely be disappointed if you install it on some random laptop. My advice is to go out and buy an old ThinkPad for a hundred bucks or two. Although there are some obvious rough spots in NetBSD, it should be noted that the operating system itself is easy to install and use. I had no problems with it on my tests, including smooth graphics, and relatively stable wifi. The default desktop is quite basic, but it's easy enough to install something more modern if you want. The documentation, like its big brothers, is very good. Of course using NetBSD as a daily driver will entail some sacrifices, you won't find KDE Plasma in the repo, and Chromium wasn't included until just recently. On the other hand, Xfce and Firefox has been there all along. For users who like to keep things simple and engage with a small but friendly community, NetBSD offers an attractive alternative.

Haiku

I have been aware of the opensource continuation of BeOS, Haiku, for some time, and I find the retro looking desktop very responsive and well designed, but I was pleasantly surprised to see how far the project has come! On my ThinkPad T430 test machine, Haiku ran without issues, including wifi. (well, mostly) An even greater surprise was to find the Iceweasel (Firefox) and Falkon (Chrome) browsers in the repository! Although these browsers, Iceweasel especially, does not work perfectly, having such mainstream offerings means that you could actually use Haiku for most day-to-day operations. Although the repo is indeed limited compared to Linux, it is starting to compete fairly well with OpenBSD. For an alternative operating system that is quite impressive!

Of course, Haiku is certainly a fringe system. Unlike all the other systems in the success list, it is a single user system and cannot be used in a serious server capacity. And many of the applications in the repository are glitchy, or down right broken. Make no mistake, this is beta software. Nevertheless, for a hobbyist user, Haiku can work as a daily driver. True, we are being generous in our definition of a "daily driver", but Haiku is the only non-BSD system that gets a green light - I did not expect that!

DragonFly BSD - plausibly

DragonFly BSD began as an experimental fork of FreeBSD, with the goal of creating a distributed operating system. That goal was never reached, and probably never will. Over the years however DragonFly has evolved into a characteristic BSD alternative, and it has created the ZFS-like HAMMER2 filesystem. DragonFly is not for newbies, but if you are an experienced BSD user who wants to try something new, you can set it up without too much hassle (just remember to bring duct tape!), and you'll find a large repository of readily available packages.

There are issues though. Uncharacteristically for a BSD system, the documentation is quite poor. This is all the worse, as you will likely need to tweak important configuration files, such as /etc/rc.conf, /etc/X11/xorg.conf and /boot/loader.conf to get graphics and audio working. On my tests the backported Intel KMS driver had issues, and gaming (I'm talking Supertux here, not Star Citizen) performance was fairly prohibitive. The repository is also problematic. It piggybacks on FreeBSD's repo, giving it a very large selection, but also producing numerous issues since DragonFly, after all, isn't the same system. Right off the bat an update broke my package manager, and I had to manually delete and reinstall it. Not an impossible thing to overcome, but it underscores the hairy issues that a DragonFly user might encounter. Perhaps Ravenports, also used by MidnightBSD, will provide better package management in the future, even if it has fewer packages.*

9front - plausibly

9front is the most actively developed Plan 9 distribution today. Plan 9 is different. Very different. Most users will likely find it impossible to use. If fact, including it in the succeeded list may even be considered cheating. Beyond the fact that none of the commonly expected opensource applications are available, Plan 9 has a completely different take on what computers are and how they should work. Plan 9 is the only distributed operating system in this list for an example. And whereas all the other systems in this article either try to or at least give you the option of, unsuccessfully, copying Windows consumer driven desktop paradigm. Plan 9 follow the UNIX philosophy, as outlined in The UNIX Programming Environment.* Although it is very hard for our "YouTube brains" to wrap our minds around the Plan 9 way of doing things. No other system will push you harder to rethink the difference between "need" and "want", and to truly take control of your own computing.

It's not necessarily difficult to do work in Plan 9 per se, but it is a mind twisting journey, and you'll need to unlearn a great many things before you get comfortable. Of course, out of all the "successful" systems listed, 9front is by far the most limiting software-wise. If you want to do office work, you'll need to learn troff. If you want to surf on the web, it had batter be a text oriented site. Video and gaming is... possible, if we are being generous. Yet Plan 9 illustrates the value of rethinking our software; Why should an alternative operating system try - and fail - to reproduce a our mainstream alternatives, when it can simply redefine what a computer should do and succeed with a thousand times less effort? If you want to be different, be different! As for hardware support, 9front performed very well in my tests, wifi, once set up,* and graphics worked flawlessly. Plan 9 is not for the faint of heart to be sure, but it can actually, speaking from experience, work as a daily driver.

illumos - plausibly

The rumors of Solaris demise are greatly exaggerated, at least the continuation of OpenSolaris, illumos, is still alive and kicking. (kicking in its death throes some would say, but kicking all the same) For casual desktop usage I would recommend the OpenIndiana or Tribblix* distributions. Solaris is most famous for its enterprise features, such as ZFS, Dtrace and Zones. Although other opensource systems, notably FreeBSD, has nicked some of these technologies, the overall implementation in Solaris* feels more integrated. The Time Slider app in OpenIndiana is quite neat for example, and there is just something heartwarming about seeing the line "Loading unix...", when you boot a computer.

Yet, there are serious issues when using illumos as a daily driver. For one, the repositories are limited. Although the repositories are growing, and you will find some of the crucial titles, such as Firefox, LibreOffice and VLC, OpenIndiana has currently about half the amount of packages as OpenBSD. You will only find four games in the repo for instance, and no game emulators except for DosBox and a very outdated and broken version of wine. The hardware side of things are also problematic. Although I did manage to install and use illumos on my test machine, there were times when it couldn't boot or shutdown properly, besides numerous other glitches. Based on my tests, I would say that it's technically possible to use illumos as a daily driver, but it won't be a smooth ride.

Those that failed

SerenityOS - barely failed

Since it's inception five years ago, SerenityOS has focused exclusively on running as a virtual OS under QEMU. It is possible to try to install the OS on bare metal, and there are instructions for doing so in the SerenityOS documentation, but this isn't supported in any way. In fact, an official installation image has yet to be released. This is by design, as a deterrent against trolls as it were, yet the message to the public is clear: Don't use our system! By certain definitions then, this AOS fails the first basic test - to boot my test machine. The second serious barrier for using SerenityOS as a daily driver, is its alpha status. Using the system for serious workloads will produce a fairly unusable level of crashes.

Nevertheless, SerenityOS has tremendous potential. The deceptively familiar looking desktop hides how truly unique the underlying operating system is. Unlike all the other systems on the success list, except 9front, it is not yet-another-UNIX-spin-off. Everything in SerenityOS, the kernel, libraries, user land, all of it, is written from scratch. This is a herculean task, and it is impressive to see what the Serenity devs have managed to do! Yet, there is an apt saying: When you have completed 90% of the work, only 90% remains. The devs have managed to create a working prototype, they have had great fun and developed many fine concepts. Now only the remaining 90% of hard work is left, ironing out the bugs, getting it stable and getting it out there - in the wild. Will the Serenity devs make the transition from fun play thing to real world tool? I hope so, I really do. But I must admit, there are signs pointing in the other direction.

AROS One

The Amiga platform has generated a fairly large and loyal fan base, so much so that an opensource initiative to rewrite the OS has existed for years. Today there are numerous AROS distributions in various degrees of disrepair, currently AROS One seems to be the most actively developed. It came close to installing on my test machine, but I guess my 12 year old laptop was just too recent, as it didn't recognize my SATA harddisk. (Even if it did manage to install, the filesystem has a hard limit of 120 Gb) For a toy OS, AROS One comes with an impressive amount of useful software, and you can actually do a lot of desktop, game and multimedia tasks in it.

As a daily driver though, there are a lot of challenges. The whole Amiga situation is a legal nightmare, and using AROS seriously will often entail hunting various dubious corners of the web for code rotten commercial junkware. A bad situation that only gets worse as the years go by. Anchoring the system to a commercial deadweight is a cursed development strategy. (a theme we'll revisit later in this article) Besides that, although Amiga made inroads in the desktop, gaming and multimedia markets - I'm really sorry for saying this Amiga fans - it was never a good platform for programmers or serious work. For me at least, coming from a UNIX background, the Amiga/AROS environment just isn't productive enough for a daily driver. But I will give them this - it's better then classic Windows!

KolibriOS/MenuetOS

MenuetOS, and it's fork, KolibriOS, are desktop oriented systems written in assembly. It is impressive to see how fast and functional an assembly OS can be, and you can tinker with the system, do various essential desktop tasks and play some games Yet, these systems are a far cry from daily drivers, both in terms of software and hardware support. As a simple example, although they do ship with a text based web browser, they cannot use the HTTPS protocal. Of course, they are not really intended as daily drivers as such, so we can't fault them for doing what they were intended to do. But as far as my daily driver test is concerned, it's a no go.

RiscOS

RiscOS has a long history going back to the Acorn Archimedes and Risc PC computers in England. It is deeply intertwined with the ARM architecture and cannot be run on i386/amd64 machines, or even, as of yet, in a QEMU virtual machine. So if you want to try out this operating system, you'll have to buy a Raspberry Pi. Since I don't have the gear to run it, I have no idea how well RiscOS can function as a daily driver. (note to self: buy a Pi!) It fails the first basic test - to boot my ThinkPad T430.

Of course, we could make the argument that it wasn't RiscOS that failed my test - but vice versa. If anything, this test demonstrates the infeasibility of using alternative operating systems on commodity hardware. And really, developing good opensource software only solves half the problem. What use is a good operating system on a locked down, undocumented, and buggy machine? Indeed, we have no guarantee at all, that companies will allow users to install non-standard operating systems on their devices in the future. Work on open hardware, such as RISC-V or OpenRISC may very well be what saves our opensource systems in the end.

RedoxOS

RedoxOS is an attempt at rewriting an opensource OS in Rust. The goal of the project is to be compatible enough with Linux/BSD systems to be a drop-in replacement for them, that is, you should be able to run any Linux/BSD applications on top of RedoxOS. The website makes other grandiose statements too, but playing around in the system on a virtual machine I suddenly had my first inkling of the gulf between his dreams and his powers, to quote a line from Jeff Wayne. Time will tell if the project can really reach its lofty goals, but from what I can see, they have a long way to go. In any event, it did not boot my test machine.

ReactOS

It seems wrong to trash an opensource system, I mean, they are labouring away tirelessly, and giving their baby away for free. Should we kick them for it? But if I'm being honest, ReactOS does not sit well with me. If I had to choice between buying an official bootleg copy of Windows XP, installing it on a machine and hooking it up to the internet, or go with ReactOS, I think I would go with ReactOS - I think. It is free, it is opensource, and the application manager lets you easily install opensource applications. Those are the good points. But ReactOS does not even come close to working as a daily driver for me, even if we gave it a wide birth, even if it did manage to boot my test machine, which coincidentally, it did not. I could qualify my statement more clearly, but let's spare ReactOS the humiliation. I do get the nostalgia of ReactOS, but theming a Linux or BSD box is a better way of scratching that itch IMHO.

FreeDOS

Essentially, FreeDOS has the same fundamental problem as AROS or ReactOS, only more so. Don't get me wrong, I absolutely love playing retro games in a minimal text based system. Updating the DOS textual interface so that it can work in a modern setting sounds like a neat idea. It is not. FreeDOS did not recognize my harddisk, and even if it did, it will limit you to a 512 Mb partition size.* It is theoretically possible to get a harddisk, audio and network (by certain definitions of "network") enabled FreeDOS machine up and running if you spend a few hundred dollars on obsolete 2nd hand hardware. Even then, you'll have to track down ancient bug ridden proprietary software, long since abandoned by its author, on legally and morally dubious virus ridden web sites, that may still be up and running, if you're lucky.* If you really want a network capable text based minimal system that works on modern machines, install Linux or something and use the TTY, you can even play your favorite DOS games in it, if that's your thing.

Concluding Thoughts

I must admit, this article was less interesting then I had thought it would be. One lesson that stands out here, is that we should be grateful that there are any free and open operating systems at all. It's easy to take BSD for a spin and think, meh. But the fact that it can boot a laptop at all, let alone surf the web and do virtually all of our daily tasks, is a minor miracle! If we only look at "alternative operating systems", excluding Linux/BSD's/Solaris from our list, then only one candidate gets a green light, Haiku. (and that's using a very generous definition of "daily driver") This underscored the fact that if you want a daily driver on commodity hardware, there really isn't that much choice. You'll also note that all of the systems in the success list are UNIX derivatives in one way or another. How come?

The simple answer, I suppose, is that UNIX has nearly 60 years of history to fall back upon, and the numerous UNIX spin-offs can bounce off each other, by sharing software, drivers, ideas and developers. In addition to having such a vast ecosystem, UNIX has probably inspired more system programmers then anything else. There may have been many Amiga game developers, but in the end, you need system programmers to write a good operating system. Windows is the only non-UNIX operating system that successfully competes with the UNIX world, and it is backed by a gigantic economic empire. (and let's face facts, in terms of OS quality, there is no competition) Why though is it so difficult to make an operating system? Two reasons; hardware and software. Computers today are literally thousands of times more complex then they really have to be in order to complete most tasks, and the tendency is accelerating.

Aside from a call for simplicity, I suppose that our findings highlight the value of opensource and collaboration. 9front would not have made the success list if it weren't for the OpenBSD wifi firmware that powers its wireless network, the opensource video codecs from Linux land that powers its video player, or the RiscOS web browser that you can port to it. And though Windows now ships with its subsystem for Linux (WSL), it would not have been able to do so if it weren't for the Plan 9 9P protocol. The point? Keep things open and keep things simple, you'll be helping other projects even if you don't actively collaborate with them. This is a lesson that Linux needs to relearn. It's fine that you want to topple the Microsoft Leviathan, in fact I salute you - provided you don't become a Leviathan yourself!