Tuesday, January 06, 2009

PC-BSD 7.0.2

I'm not easily embarassed, but I should have looked around the FreeBSD Site a little more before my last post. I was so thrilled to see changes in FreeBSD 7.0 that would help me to finally get my MySQL server set up "right," that I completely overlooked PC-BSD. I assumed that it was yet another branch in the BSD code tree, and that since it was new, it couldn't amount to much yet. Wrong!

One of the biggest challenges in building a *NIX network is to get all the component programs and their dependencies sorted out to build a useable desktop environment. This is one area where Linux distros have outpaced the BSDs. PC-BSD, it turns out is not a new BSD branch, but simply a distribution of the current STABLE FreeBSD release.

The distro includes a selection of software packages and its own PBI (Push-Button Installer) utility. Together, these constitute a desktop operating system that is easy to install and use, while preserving FreeBSD's full range of configuration options "under the hood." I'm juggling boxes now to get something Pentium Threeish to test this on!

For more information see The PC-BSD Quick Start Guide.

Sunday, January 04, 2009

FreeBSD 7.0

BSD is the best kept secret in the world of desktop operating systems. And by "secret," I mean not the least bit secret, completely out in the open, freely available to all, and entirely open source. Talk about hiding in plain sight! So what is it?

Let's begin with a little history: UNIX is a multi-user multitasking operating system developed in 1969 by AT&T employees at Bell Labs. The name is reference to an even earlier OS Multics, so it's ironic that the copyrighted name UNIX® has been so jealously guarded for all these years. Almost as soon as UNIX appeared, various organizations began to create their own software around the same general framework, most notably UC Berkeley with their Berkeley Standard Distribution -- BSD for short.

With so many versions of *nix floating around, it was inevitable that the POSIX (Portable Operating System Interface) API would be formulated to ensure interoperability. So all the flavors of BSD, Linux, SunOS, Irix, HP/UX, etc. can now be called simply "POSIX-compliant UNIX-like Operating Systems" (or just *NIX). All this development occurred in the realm of big iron, since Intel's first multi-tasking CPU (80386) didn't arrive until 1986, followed by POSIX in 1988.

The Regents of the University of California released the BSD code into the public domain in 1990, and the first x86 architecture port of BSD -- 386BSD followed in 1992. So, if there's been a perfectly serviceable network-ready clone PC operating system freely available since well before Windows 95, why are so few people using (or even aware) of it?

One reason is that it's free. A lot of people automatically distrust freeware. There is also no particular incentive to promote or advertise FreeBSD and its variants, although some enthusiasts (like me) do what they can in terms of advocacy. Then there is the question of suitability for a given task. *NIX is much better adapted to network server applications than to stand-alone desktop use. Finally, Windows and *NIX are very different in their general philosophy.

Windows requires relatively little expertise to successfully install and operate. Everything is done automagically by wizards. BSD is vastly more configurable, but that versatility comes at a price: You need answers where you didn't even know there were questions. That isn't an insurmountable problem -- BSD has some of the most extensive and complete documentation available for any software. Unfortunately, accessing that information can be a bit overwhelming -- like taking a drink from a fire hose.

Here's what to do: the next time you replace a computer (or see one being discarded), use it for your BSD project box. There's no substitute for diving right in and getting your feet wet. If you've already tried this in the past, try again. The 7.0 Release is a big improvement over previous releases in terms of ease of installation and configuration. Don't worry if you can't get everything you could possibly want up and running in an afternoon, that would be an unrealistic expectation. Just fiddle with it when you can and before long you'll be amazed at what that old "piece of junk" computer can do unencumbered by an operating system so "advanced" that you need a new computer for every new OS version.

Now I'm not even going to attempt to tell you how to use BSD in you particular circumstances, or even which flavor is best for you, but I will point you to some significant resources:

  • The FreeBSD Handbook (volume I) This users manual will take you step by step through the process of installing FreeBSD on a PC-clone and setting up a graphic user interface, which should be a more comfortable environment if you are accustomed to Windows.
  • The FreeBSD Handbook (volume II) This administrators guide focusses on network server tasks.

Like the OS itself, these resources are available online, but sometimes a hard-copy edition is much handier. Even if you are installing a version of BSD other than FreeBSD, this documentation will be helpful.

You may want to get installation CDs, but if you have broadband internet, I recommend that you try installing from an FTP server first. It's surprisingly easy and (sort of) fast. All you need to do is follow directions to prepare 5 floppy disks, then the rest of the distribution will be downloaded as needed during the installation process. (Try that with Microsoft!)

After you have installed BSD you will have access to the manual pages accessed by the command "man <command>". Start with "man man" to learn more about the man command itself, and since you probably can't read fast enough to absorb the whole page as it flashes by use the pipe (|) character to redirect output to "more," a simple utility that displays one page at a time. So you'll type "man man | more" (without the quotes) then press enter.

Like Perl, *NIX make easy things easy and hard thing possible. Enjoy.