Friday, April 13, 2012

Linux is Linux... mostly

"What's in a name? That which we call a rose by any other name would smell as sweet."

When Shakespeare penned those words so long ago, he had no notion that they would end up being so often quoted on a massive global Internet through these automatons we call computers. Nor would he perceive someone would eventually use the quote as an introduction on a operating system discussion. But I have just done that.


Once upon a time, there was one Linux kernel and one Linux operating system. Over time, parts were combined, recombined, replaced, and thoroughly hacked on until now we have over 600 variants of the operating system we call Linux (yes I know some insist on calling it GNU/Linux, but I think that is superfluous and silly). But we still have just the one kernel. And that one kernel has found itself on every kind of computing device that could bear an operating system.

From tiny computers no bigger than a matchbox, to monster mainframes with thousands of virtual Linux instances. From supercomputers used to solve the most advanced calculations on the planet, to power meters. From mobile phones to desktops, from tablets to toys. You encounter Linux every where. It is in your TVs, routers, set top boxes, cars, and Internet servers by the truckload. Linux is everywhere.

Interestingly enough, the place you most seldom find it in the wild is on users' desktops. The various flavors of Microsoft Windows holds a firm dominance on the desktop. Still, you can find it on a lot of desktops because many of us don't care about conforming to what others think is best. We find our own way. Some find their own way on Macs. But others, those others whose neurons buzz with excitement over having control over everything in their computer, they find their way to Linux. And they never leave.

And with all those millions of Linux users out there, each possessing a desire to do things their way, it was inevitable that variations of the Linux operating system would come about. These variants are called distributions, or simply "distros" for short. There are an estimated 600+ different distros of Linux spilling out of the Internet at this time. Fortunately for the newly converted, there are a handful that hold the majority of Linux users. Arguably - and really, it is argued a lot - the leading Linux distros at this time are Mint, Ubuntu, Fedora, Debian, OpenSuse, and Arch. 

These six distros have bubbled up to the top, serving the needs of the majority of the Linux users. And at their heart, they share the same kernel. Additionally, each of them have the ability to substitute, extend, or nearly every piece of software the comprises the distro. This software, called packages by some distros, typically have counterparts that provide the same basic function, but in different ways with a different user interface (UI).

What really distinguishes the distros is the list of packages included by default when installed and the package management tool that is used to maintain the distro. Many distros are simply respins of other distros, differing by merely a few packages. Others are targeted for specific industries or cultures. Some are created to be language specific for the non-English speaking world.

What strikes me as unique about Linux, and open source in general, is the (sometimes staggering) number of choices you can make about the software you run. You don't like the look and feel of the main desktop environment? Change it, just download a different one and use it. You don't like the office suite? Change it, there are several alternatives for most office apps.

With all the choices out there, and the ability to configure nearly every single aspect of the OS, it is the perfect environment for exploring how you do basic things and trying out new methods. Sometimes even the non-programmers get infected with the zeal for creation of their own applications and use one of the numerous high-level scripting languages so they either extend existing software, create plugins, or write their own applications. It is this kind of environment encourages people to experiment, to do more, to learn more. 

And this is where distros come in. Instead of having to start from scratch every time you want to try a different build of Linux, you can find a distro that provides the combination that most closely matches your needs. You start with some distro, then change out the packages as needed so you can get what you want, the way you want it. Or at least try to.

Some think that the huge number of distros indicates that there is no "one Linux" and it represents a fragmentation of the Linux community. While there is no single Linux operating system out there, there doesn't need to be. And furthermore, there remains that one cohesive kernel, and that is why comments about fragmentation are typically overblown. There may be 600+ distros, but Linux is Linux, and because of that, a simple swap of libraries and applications can allow one distro to morph from one look and feel to another. And yet each still remains a Linux operating system.

So, what is the point in all this? When the Linux community finds things it doesn't agree with, they are some of the most vocal critics you will ever encounter. To the non-Linux user community, it would appear that there is huge disagreement currently in the Linux fold over desktop environments specifically at this time. When Canonical announced it was swapping out the tried and true (and old) user interface software (GNOME 2) in the Ubuntu distro for the new "Unity" interface, it had its share of very vocal critics, myself included. And the announced end-of-life of GNOME 2 by the GNOME developers just added more fuel to the flames. But I submit that there is no fragmentation.

Linux is still Linux. Anyone can download Ubuntu from Canonical, and once installed, they can then download and install any of the other dozen or so alternative desktop environments available to Linux. They are not required to run Unity. Those that felt "betrayed" by Canonical with changes to Ubuntu and moved to different distros did so because they felt their base distro no longer served their needs. To those that use different distros altogether, they never really thought there was fragmentation to begin with.

As long as the kernel and the core Linux library APIs are maintained, Linux is Linux. Fragmentation would really only ever occur if someone were to seriously fork the kernel and strike out on their own AND they garnered a sufficient user base to make it a viable competitor. It looked like that may have been happening with Android. But recently the Linux team has merged most of the Android kernel changes back into the mainline. Fragmentation avoided.

Linux is Linux and has been around since 1991. It has undergone uncounted changes since then and has matured into world-class functionality and stability. One day it may "hit the wall". But such an event is not even on the radar yet. Until then, it keeps improving and growing. And all the while it flexes its OS muscles allowing it to become large and powerful, controlling masses of resources and serving millions of transactions, it can tuck itself into a tiny little flash part and run non-stop for years inside some little device. All this from the same code base.

Linux is Linux... mostly.


Copyright 2012, Kevin Farley (a.k.a. sixdrift, a.k.a. neuronstatic)

No comments: