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.
BSD's reputation for excellence piqued my curiosity, and a free CD made it easy
to experiment.  Intro

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.

Desktop BSD


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.

PC-BSD 1.1

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.

The Good 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.

The Bad 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.

The Maybe

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