What is Linux anyway? A quick overview of distributions


So, what exactly is Linux anyway? Is it a desktop environment? Is it used to manage applications in many of the companies for which we work? Does it serve up web pages on the internet? How are self driving cars able to, well, “drive”? Where does Android come in, and what does my home appliances have to do with Linux? 

Linux is one of the leading operating systems (OS) that is powering everything from precision medical equipment in hospitals, embedded systems in your vehicle, to the incredibly convenient entertainment services provided by Netflix. Linux is everywhere, whether you see it in plain sight or through the many online and connected services we enjoy today - the average person cannot go a day or two without using a device, service or capability that is not in some way supported by Linux (well, maybe you can, but I would find it difficult, especially if you operate a relatively modern car and have at least one stoplight in your town).

To answer the first question posed in the blog title, in simple terms, Linux is an OS that sits between the physical hardware and the software applications that are available and/or supported on the system. For example, if running Linux as a desktop, Linux manages the communication between your persistent storage device(s), i.e., SSD, HDD, etc…, and your desktop graphical user interface. If on a Windows OS then this is the same as saving files in one of your letter drives, i.e., C:, D:, etc… It allows connection to the internet through a physical port, such as an either port, or through WIFI. Linux is the glue that makes the underneath hardware available to the user. 

Linux is written in C and is considered a mid-level language. A mid-level language get its name because it provides both system programming capabilities (low-level computing functions) as well as application programming (front-end functions such as web application and user interfaces). To provide more context, high-level languages are those most commonly heard of today, for example: 

  • Java, C#, Python, Ruby, Go, and Lua, just to name several, 
  • a couple of mid-level languages include C and C++, and 
  • assembler is an example of a low-level / machine language.  

What are distributions (distros) in the context of Linux? Well, to understand this question you have to familiarize yourself with the nature of free and open source software (FOSS / OSS). I won’t get into the differences of the various types of OSS licenses, for more information you can read more here, but in general, OSS allows a user to customize and modify the code that comprises the system / application you’re supporting. Hence, you can strip the applications and tools available on an OS down to the bare essentials needed to support an application. This will reduce the amount of software needing to be patched each month, reduce the surface space for hackers to launch possible attacks, and reduce the image size. 

This flexibility was the driving force behind customized Linux distributions. There are dozens of distributions available that support a broad myriad of functions. Below is a list and brief description of the most used Linux distributions, according to DistoWatch (definitions provided by DistroWatch as well). 

Popular Distros:

  • Linux Mint  Linux Mint is an Ubuntu-based distribution whose goal is to provide a classic desktop experience with many convenient, custom tools and optional out-of-the-box multimedia support. It also adds a custom desktop and menus, several unique configuration tools, and a web-based package installation interface. Linux Mint is compatible with Ubuntu software repositories.
  • Ubuntu - Ubuntu is a complete desktop Linux operating system, freely available with both community and professional support. The Ubuntu community is built on the ideas enshrined in the Ubuntu Manifesto: that software should be available free of charge, that software tools should be usable by people in their local language and despite any disabilities, and that people should have the freedom to customize and alter their software in whatever way they see fit. "Ubuntu" is an ancient African word, meaning "humanity to others". The Ubuntu distribution brings the spirit of Ubuntu to the software world. 
  • Arch Linux - Arch Linux is an independently developed, x86_64-optimized Linux distribution targeted at competent Linux users. It uses 'pacman', its home-grown package manager, to provide updates to the latest software applications with full dependency tracking. Operating on a rolling release system, Arch can be installed from a CD image or via an FTP server. The default install provides a solid base that enables users to create a custom installation. In addition, the Arch Build System (ABS) provides a way to easily build new packages, modify the configuration of stock packages, and share these packages with other users via the Arch Linux user repository. 
  • Debian - The Debian Project is an association of individuals who have made common cause to create a free operating system. This operating system is called Debian. Debian systems currently use the Linux kernel. Linux is a completely free piece of software started by Linus Torvalds and supported by thousands of programmers worldwide. Of course, the thing that people want is application software: programs to help them get what they want to do done, from editing documents to running a business to playing games to writing more software. Debian comes with over 50,000 packages (pre-compiled software that is bundled up in a nice format for easy installation on your machine) - all of it free. It's a bit like a tower. At the base is the kernel. On top of that are all the basic tools. Next is all the software that you run on the computer. At the top of the tower is Debian -- carefully organizing and fitting everything so it all works together. 
  • FedoraFedora (formerly Fedora Core) is a Linux distribution developed by the community-supported Fedora Project and owned by Red Hat. Fedora contains software distributed under a free and open-source license and aims to be on the leading edge of such technologies. Fedora has a reputation for focusing on innovation, integrating new technologies early on and working closely with upstream Linux communities. The default desktop in Fedora is the GNOME desktop environment and the default interface is the GNOME Shell. Other desktop environments, including KDE, Xfce, LXDE, MATE and Cinnamon, are available. Fedora Project also distributes custom variations of Fedora called Fedora spins. These are built with specific sets of software packages, offering alternative desktop environments or targeting specific interests such as gaming, security, design, scientific computing and robotics. 
  • openSUSEThe openSUSE project is a community program sponsored by SUSE Linux and other companies. Promoting the use of Linux everywhere, this program provides free, easy access to openSUSE, a complete Linux distribution. The openSUSE project has three main goals: make openSUSE the easiest Linux for anyone to obtain and the most widely used Linux distribution; leverage open source collaboration to make openSUSE the world's most usable Linux distribution and desktop environment for new and experienced Linux users; dramatically simplify and open the development and packaging processes to make openSUSE the platform of choice for Linux developers and software vendors.
  •  FreeBSDFreeBSD is a UNIX-like operating system for the i386, amd64, IA-64, arm, MIPS, powerpc, ppc64, PC-98 and UltraSPARC platforms based on U.C. Berkeley's "4.4BSD-Lite" release, with some "4.4BSD-Lite2" enhancements. It is also based indirectly on William Jolitz's port of U.C. Berkeley's "Net/2" to the i386, known as "386BSD", though very little of the 386BSD code remains. FreeBSD is used by companies, Internet Service Providers, researchers, computer professionals, students and home users all over the world in their work, education and recreation. FreeBSD comes with over 20,000 packages (pre-compiled software that is bundled for easy installation), covering a wide range of areas: from server software, databases and web servers, to desktop software, games, web browsers and business software - all free and easy to install. 
  • CentOSCentOS as a group is a community of open source contributors and users. Typical CentOS users are organizations and individuals that do not need strong commercial support in order to achieve successful operation. CentOS is 100% compatible rebuild of the Red Hat Enterprise Linux, in full compliance with Red Hat's redistribution requirements. CentOS is for people who need an enterprise class operating system stability without the cost of certification and support.
  • RedhatRed Hat Enterprise Linux (RHEL) is a Linux distribution developed by Red Hat and targeted toward the commercial market. Red Hat Enterprise Linux is released in server editions for x86, x86_64, Itanium, PowerPC and IBM System z architectures, and desktop editions for x86 and x86_64 processors. All of Red Hat's official support and training and the Red Hat Certification Program centers around the Red Hat Enterprise Linux platform. Red Hat uses strict trademark rules to restrict free re-distribution of its officially supported versions of Red Hat Enterprise Linux, but still freely provides its source code. Third-party derivatives can be built and redistributed by stripping away non-free components.

Linux Mint Ubuntu Arch Debian Fedora Susue FreeBSD CentOS redhat elementaryOS

The distros identified above only represent a proportion of the available Linux distributions available on the market. Because of the flexibility of OSS, each distribution provides a customized and unique experience tailored for your specific needs. Upfront research will help with narrowing the disto of choice and ensuring the highest level of maintainability of your system and supported applications. Linux distros are largely free and available for download online or through the distro’s website.

Why is learning Linux important? In traditional software development there are ops folks, security folks and application developers. ops folks are responsible for infrastructure and performance duties that are usually measured by several of the software ilitiesThe recent emergence of cloud infrastructure, configuration, automation and scaleable tools has brought more focus and emphasis on traditional system administrator (sysadmin) duties. Now, the once sysadmin of on-prem (data center ops) resources is now able  to orchestrate a myriad of duties and responsibilities in the cloud. Not only do sysadmins maintain the OS, but they are now orchestrating the full delivery pipeline for developers, from configuration management using Jenkins, Chef, Puppet, or Ansible, to managing containers in docker and pod orchestration through kubernetes - these folks are administering a full platform of capabilities that is helping to drive software development toward a more repeatable, maintainable, available, extensible and stable process, and not to mention it is a lot of fun! I can’t wait to see what’s next in store for the sysadmin / platform engineer.

References: