This article originally appeared in the September 2001 issue of the Dæmon News Online Magazine. This is a cleaned-up version of the article with minor style edits and made it HTML5 compliant; else, the content has not been changed.
Title: FreeBSD: An Open-Source Operating System For Your Personal Computer
Author: Annelise Anderson
Publisher: The Bit Tree Press
For those who live and breathe FreeBSD daily, there are many online and offline resources that someone can go to for help. Some of those resources include mailing lists, on-line documentation, man pages, books such as "The Complete FreeBSD" and "The FreeBSD Corporate Networker's Guide", and IRC chat sessions. Unfortunately, there are not a lot of resources available, for someone who is interested in learning and using FreeBSD, that is geared towards those who are just beginning their journey. A recently released book written by Annelise Anderson titled, "FreeBSD: An Open-Source Operating System For Your Personal Computer", was written for those who want to learn and use something outside of Windows.
The book is structured so that it progresses from an introduction and background of FreeBSD to setting up a machine for everyday use. Towards the end of the book, the author covers topics such as modifying and building a custom kernel, upgrading FreeBSD and even simple steps on what one can do if something goes really wrong. Included with the book is a copy of FreeBSD 4.3-RELEASE (only the first CD is included), which is the version referenced in the book. The book is organized in twenty chapters and two appendix sections, which are listed below:
In the first chapter, the author gives a nice, brief overview of what FreeBSD is, what FreeBSD could be and is used for, the roots of FreeBSD, and a basic comparison between FreeBSD and Linux. The overview is written in terms and in a context that a beginner to UNIX (and FreeBSD) could understand. A small section of the chapter is dedicated to the differences between the "Open Source" philosophy and Microsoft. Thankfully, the topic of the GPL versus the BSD license was not discussed. The chapter concludes on how to get FreeBSD (either from the included CD-ROM, the FreeBSD CD-ROM set, or online).
Chapters two through four cover how to prepare for a FreeBSD installation, the actual FreeBSD installation itself, and getting the major components configured and working properly. In these chapters, the author goes over what an installation of FreeBSD requires (like a separate partition, or slice, and a boot manager), and how to back up current data with steps for Windows 95/98 and Windows NT/2000. Something that I found to be helpful for beginners were the instructions on getting hardware information about the computer (i.e. IRQ, DMA) as well as instructions on how to retrieve some of the dial-up information (if any) to re-connect to the Internet.
On page 21, a table shows how much hard drive space each component of the install might take, along
with a running total. I think this is very helpful since
sysinstall does not really provide
that information up front. Running out of hard drive space in a middle of an installation is neither
pretty nor a good way to start off your first installation experience. Continuing on, there is a
mention of the nice 1024-cylinder limitation and offers help to possibly avoid the issue. The author
keeps in mind that someone starting in FreeBSD may want to leave Windows as is and provides
information on dual-booting. Kudos there, considering that you will have an angry reader if the
steps provided cause Windows (and his/her data) to be destroyed. The chapter rounds out by providing
information about creating boot floppies, additional steps to keep Windows safe (including a mention
of running FreeBSD within VMWare), and a quick mention about partition resizing and the boot manager.
Chapter three covers the joys of install FreeBSD using
sysinstall. Before getting into the
actual installation itself, the author provides steps on how to navigate through
as well as its nuances. She continues on with the installation by walking the reader through the
Standard installation steps, including using
FDISK, creating slices and labelling
them, choosing the distribution sets, and making the installation choices final. The steps given are
clear and explained in a way that the reader would not get too confused.
The fourth chapter covers the post-installation process of setting up the network connection, the
mouse, X Window System, and login information. While in the networking portion of the setup, the
author takes time to explain what each TCP/IP setting means (like what a name server is and does) as
well as a brief explanation of Anonymous FTP and NFS (even though it may not matter to the reader).
The author continues by going over the Linux binary compatibility feature, setting up the mouse,
adding software packages and user accounts, and setting the almighty
root password. The
last topic covered in the chapter is setting up the X Window System and a window manager/desktop
environment... as well as making it clear that KDE and GNOME are not window managers per se.
In the fifth chapter, the reader gets to learn how to login and logout of the system, learn the
basics of the
ee editor, user management, how to find and use the man pages and GNU info,
mounting and dismounting volumes (i.e. CD-ROMs, floppy disks and DOS/Windows partitions), and a bit
on printing from FreeBSD. For someone who is learning FreeBSD, using a command line interface can be
quite intimidating and this chapter provides a concise introduction.
Chapters six and seven delve more into the shell, system utilities and basic maintenance. Most of
the command line (i.e. shell) examples in the book are geared toward the
ksh users). There are several examples/templates of the
.bashrc that helps make the person feel a little bit more at home. Chapter seven shows
the reader how to find how much space is left on the hard drive, what is taking up so much space
(nah... it couldn't be that stash of MP3's now, could it?), how to dig through
grep-ing the output, and find out more about the system. The second half of the
chapter goes into a nice presentation of processes, the kernel status and modules, looking through
syslog messages and setting up
syslog. The chapter ends with libraries, a bit
crontab, and turning on soft updates through
Chapter eight might be kind of short, but it is probably one of the most important one for any
FreeBSD user starting out since it covers how to edit files. The author chose to use
the editor of choice for most of the book (
ee is used in the first several chapters since
it is much easier for someone to start out with) and provides quite a bit of help and commands to
guide the reader through the quite terse interface/editor that is
vi. The author does
pico, but does not recommend them for just simple text editing
due to some of their downsides.
Chapters nine through eleven cover the installation of software through the packages mechanism and the Ports collection (coveres the differences between them) as well as how to find out which applications do what, installation from different sources (like FTP, the Port tar file, package files found on the CD) and, update and removal of installed packages and ports. Chapter eleven covers commonly used software, what each Ports category would contain, as well as quick descriptions of some of the Ports in the collection.
Getting on the Internet and getting it on a network are the two topics covered in chapter twelve.
The first item coveres connecting to a Internet Service Provider over a modem using
Nowadays, modems that come with almost every desktop or laptop are software-based, also known as
WinModems, which do not work under FreeBSD. Author makes a note of that; unfortunately,
does not provide any information on how to find out if one has acquired a WinModem, even if it
means contacting the computer or modem manufacturer.
For those with a network connection, the author provides a walk through of
route, getting other machines speaking to FreeBSD via TCP/IP, and setting up a
gateway/router and an
ipfw firewall. One note that I would like to make is that there
is not any mention about setting up FreeBSD to connect via PPPoE (Point-to-Point Protocol over
Ethernet) which is used by many broandband providers and requires a slightly different
configuration compared to a regular Ethernet connection.
The next two chapters, thirteen and fourteen, go over setting up sound and video (well, at
least X Window System anyway). Both chapters provide a detailed step-by-step process of setting
up the sound card drivers in the kernel, creating the device nodes, and using
to configure XFree86. I find it refreshing that the author decided to stick with the text-based
method of configuring XFree86 since using the graphical interface included with either XFree86
3.x or 4.x can cause confusion for the person, not to mention unexpected results. What I find
funny is that the author shows screenshots of both a GNOME + Enlightenment desktop and a KDE2
desktop, but done through VNC on a Windows machine. It is not a bad thing, just kind of funny :-)
Setting up a printer, printing and managing the print queue are topics covered in chapter fifteen.
The chapter details editing the
/etc/printcap file, using the
lprm, printing to a printer shared from a Windows machine using Samba's
tool, as well as
unix2dos. The second half of the chapter provides
detailed steps to install and setup
Although the author touched on configuring the kernel to add support and drivers for sound cards and
ipfw in earlier chapters, chapter sixteen is dedicated to modifying the kernel
configuration and compiling the kernel. The reader is guided through a well done overview of loading
and unloading of kernel modules, creating and modifying a kernel configuration file, descriptions
of each section, common options and devices, compiling the monster and basic troubleshooting if
something fails. Although it is nowhere nearly as detailed as the kernel portions in
"The Complete FreeBSD", but it is written so that it would not confuse or overwhelm the reader.
Chapter seventeen continues on by covering how to update ports and the ports collection, upgrade the
local source to -STABLE (as well as information on binary upgrades), and doing ever so fun task of
making and building the world and merging the changes. The steps are laid out so that a beginner
should be able to upgrade the system without too much difficulty. The author touches on the topic of
using mergemaster and provides a list of things that a "make world" does not do and how
to make up for those items. This chapter is great for those who have run into problems doing a
"make world". One nice touch that the author made was to include a nice diagram laying out
the source tree, including a brief discussion on
Chapter eighteen covers some topics that just do not really fit in anywhere else, like adding colors to
the console by using
ls -G, booting from a floppy disk, setting up the machine to send and
receive e-mail, the basics of
tar, and replacing Telnet with SSH (OpenSSH of course). Although
tar is covered in the chapter, presenting some information on
would have been helpful. Chapter nineteen goes over what one can do when things go wrong... really wrong.
This chapter covers how to recover the boot manager if it gets blown out, booting into single-user
mode, editing conf files with
vi just will not work, and using the Fixit
floppy disk. The chapter wraps up with common error messages, what they mean and what to do to resolve
the error (including the silly "Timecounter Went Backwards" error).
Chapter twenty provides information on FreeBSD resources, such as mailing lists, the Handbook and the FAQ,
published books and web sites pertaining to Unix (even mentioning good ol' Dæmon News ;-), as well
as finding out which port installed which file or library. The two appendices cover supported hardware
(pretty much what's included in
HARDWARE.TXT and the Release Notes, but with some additional
information) and a quick blurb about the FreeBSD CD-ROM and a brief system requirements list.
To take the first sentence in the book's introduction:
This book is an introduction to FreeBSD, a powerful, stable, fast UNIX-style operating system that runs on a personal computer, for people who have never used FreeBSD or any flavor of UNIX before.
I think that the author has fulfilled that goal by presenting something that is foreign to a Windows user and provides instructions, information and hints on topics that would normally intimidate the user (seeing a terse console screen would intimidate many computer users). The book does provide some notes if something that is being discussed is related or similar in both FreeBSD and Linux, in case someone who has tried Linux wants to try out FreeBSD.
taris covered fairly well, but
I would highly recommend this book for anyone who is just starting in the world of FreeBSD or for those who got it installed, but need some help that is not always easy to find. For those who have used FreeBSD, Linux or any other UNIX operating system, but does not rely on more of the advanced networking or programming topics (like installing and configuring BIND or writing a wrapper for a device), this book would be nice as a reference.
Article copyright © 2001–2010 Linh Pham. All rights reserved. Re-production of portions of this work, or its entirety, requires permission of the copyright holder.