Choosing an OS: CentOS, Ubuntu, Debian, FreeBSD, CoreOS, or Windows Server
Choosing an OS for your server can be difficult. You're aware that it's important to choose a stable OS, and you may be confused by the different available operating systems and their features. In this article, I'll discuss the key differences on the server operating systems offered.
CentOS is often considered nothing other than a free version of Red Hat Enterprise Linux (RHEL). There are a number of differences between CentOS and RHEL, but in most cases the two systems are very similar. RHEL comes with paid support, and is a commerical product. CentOS is a free product and doesn't contain any RHEL branding throughout the system.
What makes CentOS attractive is that every version is maintained for over 10 years, which is something you won't find with other distributions. A disadvantage of CentOS is that it has less features than you might know from other distributions. However, this is also a good thing: it makes CentOS relatively lightweight. If you're simply looking for a lightweight distribution to host a website or web app, CentOS is a great choice.
Ubuntu is recognized for its stability and its large list of features. Ubuntu has a lot of features by default which can make your life easier, but, this also makes the OS less portable and heavier than other distros, such as CentOS. Ubuntu is based on Debian, and it is a very popular OS. Ubuntu not only has a server version (Ubuntu Server) but also a version that is meant to be used as a desktop OS. This is very convenient if you need to work in a Linux environment.
If you're looking for an incredibly powerful environment that will be safe and reliable (guaranteed), Ubuntu is the way to go. It's the most used Linux distribution. While Ubuntu only started in 2004, it is clear that this system is evolving very quickly. LTS releases are supported for over 5 years after release.
Ubuntu is based on Debian. Debian has a number of advantages over Ubuntu though. The most important one being stability. Ubuntu is a very stable OS on its own, but Debian is often tested for over a year before releasing a new version; you can be ensured that each release is stable because there's no pressure on their team (there's no such thing as having to release a new version). Stable versions are not often changed, so the chance that things break during production use is slim.
FreeBSD is based on BSD, not on Linux. FreeBSD is not based on UNIX, although you will see mixed discussion on this argument. An OS is legally allowed to call itself "based on UNIX" when it has gone through extensive tests to obtain a certification. Therefore it's better to compare FreeBSD to Linux instead of a single distribution.
FreeBSD is known for being a high-quality OS (also because it's compatible with the BSD Unix and POSIX API's). For desktop users, FreeBSD will not be the best choice. For servers, though, it is generally considered one of the more secure choices.
CoreOS can not be compared to other distributions. It's a very new OS that is focused on integration with Rocket, and is therefore primarily focused on developers. It was first focused on integration with Docker, but after some events between the CoreOS and Docker teams in 2014, CoreOS started their own alternative to Docker called Rocket.
When using CoreOS, you must know what you're doing. It is not meant for simple deployments such as a web server.
Windows Server is a commercial OS, based on Windows. Windows Server is often considered as a very powerful system when you need to accomplish things that only Windows can do. For example, deploying an ADDS install requires Windows Server (naturally). If you just need to deploy a simple PHP application on a web server, using the built-in web server (IIS) is an extreme case. IIS offers many powerful features designed for enterprise applications. Windows Server is a very complex system that also requires a commercial license. adds a fee to your server cost for licensing.
If you need to manage GPO and ADDS, then Windows Server will be what you need to use as only Windows is compatible with this software. When you only need to host a simple Apache web server or something else that does not require Windows, then I recommend using Linux or FreeBSD.