Top Production Server Distros
I have a soft spot for community-powered distros because they are labors of love, and provide a useful counterbalance to corporate follies. The two top Linux distros, Red Hat and Debian, represent opposite sides of the same Linux coin; Red Hat is a commercial success, while Debian will always be both libre software and free of cost. Both have been around since the early days of Linux, both have a commitment to free software, and they are the two fundamental distros that the majority of other distros are descended from. This shows that both models work, that both have their merits and are complementary.
Debian is one of the oldest Linux distributions, born in 1993. The Debian community is a successful experiment in nearly-pure democracy, though some would say anarchy. But it is not anarchic. There are elected officers, a constitution, and formal structures for making decisions and resolving problems. It gets messy and noisy, as in any large community, and it works.
I’ve been spoiled by Debian, which never needs to be reinstalled but can be upgraded forever, barring hardware failure and hopelessly bollixed installations. Debian supports more packages than any other distribution, so it’s rare to not find whatever you want just an apt-get install away. Debian supports more hardware architectures than anyone else: x86, ARM, PowerPC, IBM S/390, MIPS, SPARC, ARM, Itanium, and kFreeBSD, the FreeBSD kernel.
Debian is committed to free software (according to the Debian Free Software Guidelines), and no non-free software is required to run a Debian system. But Debian caters to all users– one of my favorite features is that free and non-free software are organized in separate repos, so it is easy to control what goes on your system. Kernels are kept as close to vanilla as possible, without a lot of modifications.
Debian comes in four flavors: stable, testing, unstable, and experimental. Each release gets new code names from the Toy Story movies. The current stable release is Squeeze, testing is Wheezy, and unstable is always linked to Sid, the bratty kid. This naming scheme offers both flexibility and confusion: if you configure your sources to pull packages from Stable instead of Squeeze then the time will come when you’ll get packages from the next release, Wheezy, instead of Squeeze.
New packages typically enter Unstable, then Testing, and finally Stable. You can run any of these, and even mix and match, though that sometimes leads to rather spectacular dependency collisions. Stable is great for servers because it is famously rock-solid, and two years between releases works all right for servers. I’ve run LAN servers on testing; I wouldn’t use anything but stable on a public-facing server. Debian is very strong on security, but only the stable release gets consistent, fast attention from the security team. Testing gets some security fixes, and Unstable gets none because packages pass through it so quickly.