FreeBSD: Flirtation with Excellence
Back in 2000 it only took me 9 months to lose my patience with Windows, reformat my harddrive and install Linux and I've never regretted it. But reading up on Linux took me invariably into BSD territory, an operating system even less well-known and thus more intriguing to me. A Unix variant like Linux, the BSD family has taken a different approach, and while Linux and the BSDs are similar in design and functionality they differ in marked ways.
It was precisely because BSD is not Linux that I was so attracted to it in the first place. BSD’s best selling point to me was its reputation: well organized, well thought out, and free from the chaotic and decentralized development process that plagues Linux distributors, plus superb documentation. There is a fundamental philosophical difference in the BSD license and the Gnu Public Licence (GPL) under which much of Linux is developed, but that didn't concern me at this point. The canard I’d read on Slashdot came back to me: "Linux is for people who hate Microsoft, BSD is for people who love Unix." Some research on the Internet led me to more comments that supported the idea, and pointed out something else that grabbed my attention: "Linux" is just a kernel and the distro is a compilation of the kernel and some other software, while BSD is a full operating system.” The sense of cohesion, of clever integration, the carefully-orchestrated development process all appealed to me.
But appealed to me for what reason? BSD is traditionally a server OS though thousands of software packages I'm familiar with are available for it. And face it, though I sometimes fantasize about administering a small personal server, I don't need a server for any reason other than that it would be a fun toy and an interesting learning experience. So while it’s true BSD is a top notch server and has been employed worldwide for sites as critical as Yahoo!, I realized I’d have no trouble using it on the desktop as well. In fact, half the inspiration to explore BSD came from the realization that software packages important to me, like the Opera web browser, the Textmaker wordprocessor, OpenOffice.org, and the Mutt email client, would be available to me under BSD as well.
But the real inspiration to try out BSD came from wrestling with Linux’s sloppy virtual console configuration. I love the console and use it for a lot of my work, not because I’m forced to but because it’s a less distracting environment for when I write or answer my mail. But goofing around with mutt, emacs, LOCALE environment variables, and console fonts that were missing important glyphs made me wonder if there wasn’t a better way. I'm told Linux development is revisiting the console code to bring it into the modern age of UTF-8 encoding, glyphs for non-Latin characters, and the like, but BSD's reputation for excellence piqued my curiosity, and the free CD made it easy to experiment.
The CDs provided two packages, Desktop BSD and PC-BSD. Neither of these can be considered a distribution of BSD in the Linux sense, but rather provide a full FreeBSD 6.0 operating system via custom installers that take the pain out of installation and provide customized and configured KDE desktops. The rest of this brief article describes my experience with these two products. I am not looking at BSD from the point of view of a newbie, nor from the point of view of someone looking to replace Windows. For that matter, I'm not even interested in setting up a server. I was simply taking a quick look at how hard it would be to get FreeBSD onto my machine, and taking a quick look around to see if the reputation was deserved. Mostly, I was looking for a nice console environment I could configure to my liking to get to work with emacs, mutt, and a couple of other favorites.
I tried Desktop BSD first. The install process was a delight, presented no more than three or four screens and three or four places where I had to intervene with a decision, including the partitioning of my hard drive. The interface was slick and professional, easier than a Windows XP installation, and better presented than Ubuntu, SUSE, or Mandrake. It was equal in simplicity perhaps only to Xandros, and the widgets and color scheme were prettier.
The installation process took about 30 minutes and booted me into a gorgeous KDE 3.4 desktop. Unfortunately, I had no network. My setup isn’t too out of place: a 2000-era Compaq Presario PIII laptop with a PCMCIA modem-10/100 Internet card, but that card has given me trouble before, even with Linux, and a failure at the point was no surprise to me, particularly given BSD’s reputation for relatively less support for hardware in general.
So I turned instead to PC-BSD 1.1, which I downloaded from their website. The install process was similar, and just as easy, but used ugly Motif widgets instead of Wxwindows widgets. But that’s not important. Again, I was asked to choose a partition and decide what to do about a bootloader, and I was off installing. About an hour later, the machine booted me into a gorgeous KDE 3.5 desktop. Moreover, an icon on my desktop indicated updates were ready from some internet site, signaling I had connectivity to the Internet, which I quickly confirmed with a quick website check! Very impressive.
Overall, there was plenty to be happy with:
The packages and ports systems: The BSD ports system was legendary and seeing it in action reminded me of the elegance, simplicity, and ease of Debian’s Apt system. With a simple pkg_add -r emacs the emacs package was downloaded and installed on my system.
PC-BSD packages: I like the idea, though I can’t decide if I’d prefer BSD stay true to its Unix roots or not. But PC-BSD has developed a packaging system of its own that keeps a binary and its associated libraries all in one package. I was hoping for something more like Mac OS X Applications but instead it turned out to be more like static RPMs or DEBs that include all the necessary libraries. There is a programming reason why software should link to dynamic libraries rather than static ones but from a user's point of view it's less aggravating to pick up a single package than deal with dependencies, and I respect this initiative.
The KDE desktop: I don’t need to go into the strengths and weaknesses of KDE but I’ll point out I prefer it to Gnome but not as much as Windowmaker or Openbox. But I was very pleased to see that by default, PC-BSD left me in front of a windowing environment I would be able to maneuver through with little trouble. There were a half dozen virtual consoles as well, which I appreciated, as Desktop BSD doesn't supply any by default (which saves memory, of course).
Hardware Support: Apparently BSD had a better working USB implementation than Linux did; I can’t attest to that. I do know when I inserted a USB key it was quickly recognized and dealt with, and that hasn’t always been my experience on Linux. I also had better luck with my sound card than I’ve had with some Linux distributions including Ubuntu.
Documentation: I was stunned by the beauty, clarity, and completeness of the BSD documentation. I am told newbie questions on the mailing lists are summarily dismissed with a peremptory “go read the manual” and with a manual of this quality it’s clear users who fail to do basic research are disparaged. Even the man pages were cleaner, better organized, and included helpful examples.
Speed: Both operating speeds and boot time were notably better than on Linux. With fairness to my SUSE box, SUSE enables all sorts of services and performs all sorts of checks on booting that lead to a smoother user experience when new hardware is plugged in, but at the expense of boot time. Overall, even on this PIII with a meager 128M of RAM, this OS was snappy and responsive and felt lighter than other OSes this machine has suffered through, including the horrendously unuseable Windows 98SE.
Considering one of my reasons for installing BSD was to get a great command line environment, the crappy resolution I found on my virtual consoles was a bit of a disappointment. The PC-BSD kernel had been compiled with a couple options that didn’t work for my Trident video card, and I wasn’t smart enough to figure out what to do about it. I could probably recompile the kernel, which might be worth it overall. But I’m not ready for that yet. In screwing around trying to figure out what to do about it I discovered a couple of things that were worthwhile to me and reinforced the idea this was a well-assembled and cohesive operating system. One was the sysinstall utility that reminded me a bit of SUSE’s YAST and allowed me to reconfigure some aspects of the console. Another was the amazing vidcontrol utility, which is what I used to determine what kinds of resolutions I had available to me, and while the news in my case was bad, the tool was good – easy to use, friendly, and eminently understandable.
The Boot Loader: BSD software uses the BTX boot loader, which I don’t understand well and which doesn’t appear to boot Linux, so in installing it I hosed my ability to get back to my SUSE Linux installation on the other partition. Neither was I able to get GRUB to boot FreeBSD for me. The first time this happened I threw up my hands and reinstalled a quick version of Linux just for the assistance in overwriting the master boot record of my hard drive and starting again. But that’s not a good tactic over the long haul. I've got some learning to do, but for now I'll state I much prefer GRUB to BTX.
Updates: Upon my first boot I was informed three updates were available, and asked, would I like to install them? Why yes, thank you, yes I would. But each of the three updates took hours to download and install, and each of them forced a reboot. The downloading was understandable enough but after watching no progress on the installation part of the process I dropped into a virtual console to use the command ‘top’ and see if anything was happening at all. Alternating BSDTar commands showed me something was indeed happening, so I’m glad I let things happen and allowed the process to complete. But no SUSE Linux YAST update ever took that long to install, and I’m not sure why it took so much time. On the other hand, the updates completed smoothly and cleanly, for which I was very grateful.
PC-BSD Packages: I poked around the package list looking for a good example to try out. I started with mutt and lynx, two of my favorite command line utilities. Neither was available, nor were many other packages I’d have downloaded otherwise. Turns out the package collection is under construction, which I’m happy to forgive. Instead, I did a test download of the Scribus desktop publishing software, which was as easy as three clicks and very user friendly. I’m told the autopackage system is gaining traction in the Linux world, for which I’m glad. Linux needs a mechanism by which the casual user can download crap software off of freeware sites for local use, leaving the maintenance and upgrading of system software for the heavy-duty utilities like apt-get, the BSD ports collection, and RPM (SUSE, Redhat).
X.org: For the record, the installation routine detected my USB mouse and not my track pad. After years of Linux experience I knew what to do about that, so I simply added a couple of lines to my X11Config file and carried on with life. And I didn’t have to reboot the X server, either - the change was picked up instantly. This was by no means a show stopper.
Fonts: I had some font trouble in the X environment, which gave me trouble with both Gvim and GUI Emacs.
Note: the BSD Daemon ("Beastie") Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved
The author does not allow comments to this entry
Display comments as Linear | Threaded