Friday, August 8, 2003

Open source software — gotta love it. Sometimes, though, I think it's more like "gotta love to hate it". Now don't get me wrong — my other computer (Bytor) runs OpenBSD and I love it. On Bytor I have my development webserver, my mail server(s), a DNS server, a FTP server and my archive directory of almost everything I've ever downloaded, as well as all the home directories for every account on my Windows machine.

I spent this past week upgrading Bytor from version OpenBSD-3.3 to OpenBSD-current in order to take advantage of the latest patches and upgrades made to not only the OS but also any packages I have installed. Part of the reason I spent most of the week upgrading Bytor is because I am behind a normal phoneline, so downloading takes forever. But that wasn't the only reason it took me all week. The major problem with open source, IMNSHO, is documentation or lack thereof. Few programmers like writing documentation and as a result few open source programmes have the amount of documentation that commercial software has.

In my professional opinion as a freelance computer consultant, OpenBSD is simply the best, most reliable and certainly the most secure of all the free un*xes out there. If an organization wants to host their own website, whether it is for only internal use or to be shared with the 'Net, I tell them to take one of their older server or desktop machines and load OpenBSD onto it, add Caucho Resin and MySQL and it will be competitive with a new Windows machine that is twice as fast and has twice the memory, if not better. And for $0 too, compared with potentially $3000 for a new machine plus Windows. That same OpenBSD machine could also be their corporate mail server, and the firewall for their entire office network if they wanted security.

But in spite of this glowing performace report, OpenBSD has less documentation for it than un*xes like FreeBSD or the various flavours of Linux (RedHat, Debian, Mandrake, etc...). It is not really for the casual office or home user, and even for a geek like me it's much better as a server than as a desktop. After you factor ot slow download times via modem, the reason it took me a week to upgrade Bytor was because every time but one I came up against a problem I couldn't find the answer on the OpenBSD site.I had to go search the 'Net and dig through reams of archived mailing list posts to find an answer, and about half the time I had to adapt from answers to similar problems on FreeBSD or NetBSD.

A few years ago in a newsgroup, I posted my opinion that OpenBSD is destined to remain on the margins unless good documentation was produced, and Theo deRaadt (the original force behind OpenBSD) got rather annoyed at me for saying that. At the time I volunteered to produce or coordinate a comprehensive "OpenBSD HandBook" formatted like the FreeBSD Handbook, and I asked how would be the best way to go about getting significant documentation like that started and put on to the OpenBSD website. Except I got no answers, not evan a "So-and-so manages the website, talk to him". When I asked for pointers or URLs on how to go about writing device drivers for OpenBSD, all I got was "RTFM you idiot" Unfortunately there was no (f***ing) manual for OpenBSD device drivers to read, and reading the poorly commented code that was part of the OpenBSD sources helps only if you already know what you are doing. That's when I made my comment about marginalization and then Theo got mad at me (and it made me see why some people call him arrogant). While there are a few more docs on the OpenBSD website 3 years later, it still doesn't approach the level of the FreeBSD Handbook or everything available for Linux. And that's a shame, because OpenBSD is the best free un*x out there.