Tuesday, January 6, 2009

My take on "Which Unix to learn"

I came across this post on TaoSecurity today, with Richard Bejtlich's suggestions for an "Introduction to Unix." Like text editors, the discussion about which distribution of Unix to learn can be considered a "religious" argument. If you're a regular reader of his blog, it's no surprise he suggests FreeBSD. He does clarify and say if you're running a server, he suggests FreeBSD; and if you're running a desktop, he now prefers Ubuntu. And if you're still adamant about running Linux as a server, he suggests Debian.

My opinion differs, depending mainly on "why do you want to learn Unix?" If the answer is related to increasing your work/resume skill sets, I would have to disagree about using FreeBSD or any of its other BSD derivatives (Net, Open, etc.). In my experiences of being an admin or some other support role, I have yet to encounter a *BSD server. I'd encourage someone to use a distribution that they would encounter in a corporate environment. The Unix server OS's I've had to support have been Red Hat (now Fedora), Red Hat Enterprise Linux (also known as RHEL), and Sun Solaris. To avoid having to pay licensing fees, you could substitute CentOS for RHEL.

If I were asked the question, I would suggest a "major" Linux distribution or Solaris/Open Solaris instead. I would think their device names, software packages, and file system organization would help with familiarity when trying to translate the knowledge learned to a corporate environment. Although this may be an unfounded opinion, I also think that there are more support options and supported software using them, rather than using *BSD. I do agree with Bejtlich that if you want to run a Unix distribution on the desktop, to stick with Ubuntu, since it seems to "just work" when installed and there are less configuration headaches. Or you can just use a Mac if you want a Unix desktop (troll... and yes Mac could be considered a BSD variant).

2 comments:

Matt said...

To show how completely huge a geek I am, I'll make this analogy.

OS X is to Unix as Orcs are to Elves.

Yes, they come from the same stock, but they're corrupted and evil.

Still, OSX is the best laptop OS I've used, but Ubuntu can be made into a very very close 2nd.

Mestizo said...

I have seen both FreeBSD and OpenBSD used occasionally in production environments. OpenBSD was a good choice for externally facing production servers where security and a minimalist footprint were paramount. However, OpenBSD lagged way behind FreeBSD in SMP support. Because of this, FreeBSD was used as an alternative when the target hardware was multi-CPU based. An additional benefit of the BSD's back then (pre RHEL), was a stable and predictable development cycle. Linux and RedHat back then was quite chaotic and a headache to keep up to date.

The issue with the BSD's however, was lack of support for proprietary software packages. Things such as Cold Fusion, etc. (Yes, I know there are "hacks"/ work arounds to get it running, but do you *REALLY* want to run your primary corporate website on a "work around"?).

On the flip side, almost every proprietary software vendor that supports Linux, at least supports RHEL. Alot of cases, that's all they support. In fact, most of the time when they say they support "Linux", what they meant to say was we support RedHat EL.

I wholeheartedly agree with the rest of your article. If you want to learn Linux/Unix that is going to directly benefit you in today's corporate world, CentOS and Solaris 10 x86 are probably the two top choices.

In my office, where we have attempted to standardize on CentOS, I have *demanded* that all Debian and Ubuntu installation media be destroyed. Anyone caught attempting to deploy a server based on any *NIX variant, other than CentOS or RHEL (with valid license), will be promptly stabbed in the eye with a rusty screw driver.

This has served to greatly ease overall administration of the Linux server base, allowed for common builds, and allowed our staff to focus their linux learning on a single specific target.