Author: Jem Matzan
I originally moved to FreeBSD 5.1-RELEASE shortly after it hit the download servers in June of 2003. I came from Gentoo Linux, which was giving me a lot of trouble as far as updating the system through Portage. I’d read that Gentoo was originally designed by a former FreeBSD hacker, and that Portage was a supposedly improved version of FreeBSD’s Ports software management system.
Switching from GNU/Linux to FreeBSD is not as easy as one might like. FreeBSD (likewise OpenBSD and NetBSD) does not have a fancy graphical installer like many GNU/Linux distros, and a number of commands in the BSD userland are similar to but different from their GNU counterparts. BSD was developed from the original AT&T Unix and is therefore a bit more Unix-like than GNU/Linux is. Someone once said something along the lines of: BSD was designed by Unix hackers to be Unix, and Linux was designed by a PC hacker to be like Unix.
So in general, things are just a little bit different. The default shell, for instance, is TCSH for root and SH for users — no Bash, although you can install it from Ports and make it the default if you like. Many BSD hackers are notoriously anti-GPL, so you won’t see much in the way of GNU utilities in the base system, with the obvious exception of GCC. Other little differences exist, like the atacontrol
and tunefs
commands, which effectively replace and supersede GNU’s hdparm
utility. FreeBSD’s useradd
script uses prompts to ask you what options you want, whereas by default, GNU’s useradd
requires you to type out all of the switches and options in the command line. Once I got used to FreeBSD, I came to greatly prefer its way of doing things over any GNU userland I’d seen.
What makes my work easiest is Ports. If I need to accomplish something I can’t manage with my currently installed programs, I just change directory to
All of my favorite GNU/Linux programs are available natively through Ports; if I want a binary instead of installing from source, one is usually available through the FreeBSD package database. If I want to use the Linux version of some program that hasn’t made it to BSD yet, FreeBSD has a nice Linux emulation layer that can run Linux binaries with no noticeable loss in performance.
Lastly, FreeBSD works well with all of my hardware — no trouble at all, and all I had to do to the kernel was add one line for sound support. Later on I also made IPFirewall part of my kernel as well, and took out a lot of driver support that I’d never need.
Epilogue
Around the time I built an Athlon 64 system last year, things began to change in FreeBSD land. While FreeBSD has a reasonably competent AMD64 edition, I’ve had a lot of problems with it — crashing, poor software compatibility, and a general reluctance on the part of the development team to commit patches that would add 32-bit support, Linux binary compatibility, and other necessary fixes. I don’t like having a hacked-up system; I want to be able to use the default installation, modifying only the configuration files to change the system’s functionality — no “unofficial” patches.
The release of FreeBSD 5.2 was a disaster — I had problems with DHCP and the ATA driver which prevented me from doing much with the computer. 5.2.1 fixed those problems, but the entire ATA subsystem was only hacked around, not really fixed. I had to switch back to the x86 version of FreeBSD for a long while because of all of the crashes on my AMD64 system (the crashes were even worse with my hyper-threaded Pentium 4 system). Recently I reinstalled the 64-bit version on a separate disk slice, and I’ve been following the 5.3 release candidates with the hope that the AMD64 port will be usable when 5.3 is released next month.
Jem Matzan is the author of three books, editor in chief of The Jem Report, and a contributing editor for OSTG.
What’s your desktop OS of choice? Write an article of
less than 1,000 words telling us what you use and why. If we publish
it, we’ll pay you $100.