Learn Unix With OpenBSD
Much of the focus of desktop Linux, and regrettably even Linux in the data center, is a slow and steady migration away from the command line towards GUI tools and interfaces. While this is great news for the Linux and open source community at large, many basic Unix skills get overlooked by new users. Back when I was first indoctrinated into the mysteries of Unix, the guru I studied under scoffed at my reliance on the tools available in Mandrake to build a LAMP server. "Why don't you build it like you know what you're doing?" He would ask. "Why don't you build it with OpenBSD?"
OpenBSD, for those who don't know it's history, is a descendant from the original Berkeley Software Distribution, a derivative of original Unix passed around universities back before time began. It is not Linux, which is a Unix clone, although it can run Linux binaries, as well as binaries from Solaris and FreeBSD.
My favorite feature of OpenBSD is it's absolute lack of features. Installing OpenBSD takes about six minutes or so, and the process is entirely command line driven. Once installed, you have a working web server or firewall with only the software needed to function. Holding true to the old Unix axiom "everything is a file", installing the OpenBSD core packages is as simple as downloading the tarball and unzipping it in the root directory. What's great about this minimalist approach to building a server is that OpenBSD doesn't give you an "out"... the system expects you to know what you are doing. That principle is what makes OpenBSD such a great choice for learning the basics of Unix. There is no other option, you have to figure out Unix and then move on to getting things done with the OS.
OpenBSD differs from Linux in more than just its heritage. There is a completely different culture surrounding the OS too. The developers who work on it are not concerned with taking over the world, they only add features that they want. OpenBSD makes an excellent web server, file server, and an exceptional firewall, and has native features for load balancing and packet filtering. Years ago I used to build small home firewalls out of old Dell desktop computers, the old beige kind, by throwing a second NIC in them and loading OpenBSD. It would give new life to the old machines, and build my experience with packet filtering and squid caching.
If you are thinking of digging deeper than the superficial GUIs of most modern Linux machines, you could do worse than settling down for the afternoon with a pot of coffee and figuring out OpenBSD. Like many of the things I love, it's got a learning curve to it, but the payoff is well worth the effort. Sure, you could build your next server using the latest Ubuntu release, and have a LAMP system running in a couple of commands. Or, you could build it like you know what you are doing, and choose OpenBSD.