Introduction to Community Enterprise Operating System (CentOS)

The operating system that I use most frequently is Microsoft Windows 7 at work, Microsoft Windows 10 on my desktop at home and Android 6.0 Marshmallow on the smartphone and...

The operating system that I use most frequently is Microsoft Windows 7 at work, Microsoft Windows 10 on my desktop at home and Android 6.0 Marshmallow on the smartphone and tablet. However, there is another operating system that I’ve been using for many years and that I rarely get into discussions about, yet over time it’s the operating system that has earned most of my trust. So for this post, instead of concentrating on the well-known Windows operating system, I’ve decided to describe my working experience with the not so commonly recognized CentOS operating system.

What is Centos?

centos-logo-light

CentOS is an abbreviated form for Community Enterprise Operating System. It’s a community driven project that started in 2004, and as the term ‘Cent’ in ‘CentOS’ correctly suggests, a large budget is not a prerequisite for purchasing this OS. In fact, this is an entirely free and open source computing platform, which can be downloaded and installed by anyone who has access to the Internet and a 64-bit computer (the newest CentOS vs. 7 requires x86-64 instruction set).

Jonathan Hobson, the author of the Centos 6 Linux Server Cookbook (2013), summarized the CentOS operating system in the introduction of the book, stating following: “CentOS is a community-based enterprise-class operating system. It is available free of charge, and as a fully compatible derivative of Red Hat Enterprise Linux (RHEL), it represents the first choice operating system for organizations, companies, professionals, and home users all over the world who intend to run a server. It's widely respected as a very powerful and flexible Linux distribution, regardless as to whether you plan to run a web server, file server, FTP server, domain server, or a multi-role solution”.

Personal Experience

The CentOS has been my choice of OS since early 2008. I am using CentOS 7 operating system as a server platform on which I currently host 20+ websites that are visited on average by over 100 thousand unique monthly visitors and generate half a million page views.

The CentOS Linux is a derivative of the Red Hat Enterprise Linux (RHEL) distribution sources and as such it offers stability and depth of an operating system that is typically used in an enterprise setting. I find it to be not only easy to configure and manage, but also a lot more stable than Windows Server 2008 or 2012 operating systems (that I also work with).

My experience is possibly the best illustration of the efficiency of newest CentOS 7. It is not only that the system is capable of serving the websites with thousand of daily page views, but rather that the operating system accomplishes it on a mediocre hardware server setup that consists of Intel i5 CPU with only four cores running at 1.60GHz, while equipped with only 16 GB or RAM. I am currently using the most recent version: CentOS Linux vs. 7.2.1511, that is also running on the latest Kernel version: Linux 3.10.0-327.28.2.el7.x86_64. The general reaction I get whenever I discuss the performance of the server (and its hardware configuration), is that of disbelieving that the server is not overloading. But that is essentially my experience. During a typical month, the average CPU usage for the server in the question is that is utilized 10% for user processes; the kernel takes 8%, and 31% is a usage on the IO side. This means that the CPU is on average 51% idle. And as far as RAM usage goes, it’s even more hard to believe, the server’s monthly average for memory usage is 2.86 GB of a total of 16 GB. In comparison, the same load on the Windows OS based server would quickly take the entire hardware capacity of the server, whereas, with CentOS, the system is barely utilized. The additional interesting fact is, that this server, ever since its deployment (almost two years ago) never had to be restarted (other than for the hardware maintenance) or had to be rebooted after the installation of kernel or patch updates, which is somewhat different from the Windows experience.

Advantages

It’s astounding that the CentOS operating system that does not cost a penny is essentially the same product as Red Hat Enterprise Linux which fully licensed goes for hundreds of dollars. “The goal of the CentOS project (centos.org) is to produce an enterprise-class Linux operating system distribution. CentOS comes with thousands of software applications, covering every major category of desktop, server, and programming software. If you want to use CentOS as a server, you can take advantage of server software in CentOS that includes Apache Web Server, Samba, Sendmail, CUPS, vsFTPd, and MySQL. By accessing some third-party and CentOS and RHEL-specific software repositories on the Internet, you have access to many more software packages. Often, getting a new software package downloaded and installed is as simple as running a single yum command.” (Negus, 2009)

Perhaps surprising fact is, that the development of CentOS is supported by the Red Hat, who sits on the CentOS governing board along with the core developers and most active community members. This relationship ensures that the CentOS project wholly conforms with Red Hat's redistribution policy, and also has the complete functional compatibility with the upstream product. As the CentOS website says, “CentOS mainly changes packages to remove Red Hat's branding and artwork.” (The CentOS Project, 2016). The CentOS is so popular with Amazon, Google and other retailers specializing in cloud computing; that project now offers official images specifically designed for these vendors, as well as images for the self-hosted cloud model.

The summarize the advantages, “The pros are that it is compatible with Red Hat Enterprise so anything that works on one will work on the other and the administration techniques are the same and that it inherits the same long term support with bug and security fixes backported, so they don't change behavior.  If you get something working, you can expect it to keep working for many years with no more effort than an occasional 'yum update' to the system.” (Mikesell, 2011).

Disadvantages

Those were the pros of CentOS. When it comes to cons, the biggest problem of CentOS is the lack of support, which means that issues are reported back to an online community of supporters instead of a team of dedicated OS support professionals. “Because the people who work on it are volunteers, they may disappear for a while to take care of problems in their own life.” (Mitch, 2015). That is inherently a problem because an immediate response cannot be guaranteed when most needed. And for that reason, hosting large/critical enterprise production environments on CentOS is not recommended.

Another disadvantage is related to software distribution. Individual RPM packages (applications available for CentOS) are typically slightly behind in their availability for RHEL. On average, the software packages for CentOS, are obtainable from the mirrors within 72 hours of their official release for RHEL, and for the majority of RPMs it’s within 24 hours. While this may not be the problem for a homegrown server, in enterprise environments this could be an issue. For example, any delay for a security patch could expose the business to the possibility of disastrous outcomes.

Conclusion

CentOS Linux has its pros and cons, and it’s essential to understand these before using the product as a core operating system for either a desktop or server.

There are many questions to be asked, but because CentOS is the free and open source, nothing prevents us from downloading and installing it to form the personal experience and opinion. Lastly, I want to say, that I am a happy CentOS client myself and wholeheartedly recommend the product as a server replacement for other many times costly OS distributions.

As Walt Disney once said: “We keep moving forward, opening new doors, and doing new things, because we're curious, and curiosity keeps leading us down new paths.”

References

Hobson, J (2013), Centos 6 Linux Server Cookbook. [Electronic Book] A Practical Guide To Installing, Configuring, And Administering The Centos Community-Based Enterprise Server, n.p.: Birmingham, U.K. : Packt Pub., 2013., University of Liverpool Catalogue, EBSCOhost (Accessed: 26 August 2016).

Negus, Christopher, and Boronczyk, Timothy (2009). Bible : CentOS Bible (1). Hoboken, US: Wiley, 2009. ProQuest ebrary., University of Liverpool Catalogue, Page :3 (Accessed: 26 August 2016).

Mikesell, L. (2011) Available at: https://www.quora.com/What-are-the-pros-and-cons-in-using-the-CentOS-Linux-distribution (Accessed: 26 August 2016).

Mitch (2015) CentOS Linux - 6 things you should know about. Available at: https://geekpeek.net/centos-linux-things-to-know/ (Accessed: 26 August 2016).

Differences between Debian and CentOS (2012) Available at: http://serverfault.com/questions/396079/differences-between-debian-and-centos-from-a-web-server-prospective (Accessed: 26 August 2016).

The CentOS Project (2016) About CentOS. Available at: https://www.centos.org/about/ (Accessed: 26 August 2016).