12.12
Choosing a Linux distribution for your server can be a daunting task, there are just so many choices, and distributions do have marked differences which set them apart. In the Linux community popularity is not always viewed in a positive way. There is a stigma attached to distributions. The popular distributions which tend to be easy to use, such as Ubuntu, are labeled as “noob” (beginner) distributions. Others like Gentoo are labeled for use of the “l33t” (elite). Now there are many differences between distributions such as these. Where one will have most everything set up and working out of the box, the other may take hours to set up even to work. Because of the difficulty of use, these distributions will also have different sizes of community following. Ubuntu for example, has a huge community. While it is true that the average user in the community will not be able to impart much information about the distribution, there is always a percentage of experts, and in Ubuntu’s case paid employees to help fix bugs, update packages, etc. This is huge. The great majority of Linux users will not complie and configure thier own software, nor do want to, know how to, or have time to do so. Because of this, pre-compiled and configured software “packages” are relied upon. With Ubuntu, their fixes do not oftentimes make it upsteam, (bad) so they are the only ones left with the patch for the software. So in the end, a polished, more problem free distribution is what is provided in the case of Ubuntu.
When running any distribution, a large and robust package archive and software such as apt or aptitude to manage it is greatly beneficial. Debian and Ubuntu both satisfy this need, partially because Ubuntu is based on Debian, therefore the packages are easily portable, often with minor modification. Although Debian is a great distribution, it may not be as great of a choice as Ubuntu when considering a few different options. Other server distributions such as Centos can’t compare to these Debian based package archives, or package management tools. Packages, after installation through the package manager are mostly ready to go, and only require configuring for advanced requirements. Advanced configuring is usually possible, while not usually necessary.
While some companies may be forced to go with distributions such as Red Hat server edition for their needs, as Red Hat can provide valuable services related to their product in many areas. (large companies should have these types of experts working for them anyway) Ubuntu provides a great server for most applications.
When looking at Debian in particular we see:
Debian’s release cycle, as you know if you follow Debian at all, is not set in stone and it is notoriously known to be late. While the reasoning behind the delay is often admirable (get everything right before release) this system doesn’t always fit the a business model that one may be seeking when deploying a server. But unlike many other distributions, Debian’s motive isn’t going to be directed by a company seeking to make a profit. Things are done in a democratic manor in a free open source community.
Support for a server OS is important. Ubuntu-Server meets or beats the best server distributions in terms of extended support. The Ubuntu Server LTS (long term support) releases are supported for five years. Debian, while providing support in the way of software and kernel patches for 3 years, which is a remarkable amount already, can’t match Ubuntu’s length of support. A release after being updated and patched for a few years is almost guaranteed to be rock solid. Let alone to say that Ubuntu is already based off of Debian stable, which is known to be super stable. Red Hat also provides quite extended support for their product, but at a cost. But why pay for something when you can get a better product for free.
Ubuntu provides professional support for its releases at a cost. While Debian, does not provide professional support, other distributions like red hat do provide professional support as well. While this is nice, their package management system is years behind Debian based. Using a Red Hat based distribution is only necessary when packages are provided with support from various companies. This is the case sometimes, and because Red Hat does have its foot in the door for the Linux Server distribution category, you’re stuck. But then again if this is the case, you were already stuck as you’re probably not the one making these decisions.
Ubuntu has many specialized kernels. Ubuntu has a variety of kernels to choose from depending on the task the operating system will be used for. When you select the server version, it will install a kernel configured for a server environment. Then there’s the “generic” kernel that comes with the desktop build. There is also a 32bit server kernel with PAE support extending memory addressing on 32 bit hardware to support more than 4GB or RAM. Ubuntu also makes a “virtual” kernel which is stripped of unnecessary drivers for use on virtualized systems. The size of the virtual kernel is significantly less than the others.
Based on these reasons, one can see that there’s been a lot of work gone into polishing Ubuntu server into a great distribution. Debian’s popularity for servers is well know already, but I find Debian to be less well polished. Another popular choice for servers is commonly Fedora. While being a decent desktop distribution Fedora’s life cycle is short, updates are constant, indicating many bugs, which is expected, as Fedora uses cutting edge software that is oftentimes far from stable. Even recently kernel.org, the site which hosts the Linux kernel sources was hacked and down for several weeks. Can you guess which distribution they were using? That’s right, Fedora. Make the smart choice and use something with a long life cycle, and stable thoroughly tested software that’s been in the wild for some time. Choose Ubuntu. As for a desktop, I no longer use Ubuntu, but that’s another story altogether.