What IS Linux?

Answering this question is less straightforward than it sounds. Linux, technically speaking, is a kernel (a piece of software that manages computer hardware) first written by some guy from Finland in the 1990's. But obviously, that answer isn't very helpful.

You also might have heard that it is an operating system, like Microsoft Windows and MacOS are. That is kind of true, but not the whole story. That implies that there is only one Linux, written by the Linux team. While there is a team that develops and maintains the Linux kernel, that isn't what most people talk about when they say "Linux."

Linux is not really an operating system, so much as it is an ecosystem. It is an ecosystem of different operating systems that have at least some level of compatibility to one another. These operating systems all use the Linux kernel as the basis for the heart of the system, but just that, the basis for that system. Each operating system also contains software that builds upon this kernel, and while there are standards in place for interoperability between systems, a lot of software is also different.

If you've ever wondered why nobody can actually tell you what using Linux is like, it's because there isn't really one way that it gets used. People's user experience might vary wildly from person to person, in both aesthetics and user experience, because the software components of one person's version of Linux versus another person's version of Linux are different.

Who OWNS Linux?

That's the funny part: nobody does! The Linux kernel and the majority of its internal utilities and tools are free and open source (often abbreviated as FOSS). In this case, "free" does not mean free as in "at no cost", but as in "with no restriction." (In practice though, most Linux software is available free of charge.)

With free and open source software, you have the freedom to:

This does not mean that there is no traditional, closed-off software on Linux, far from it. These freedoms are more important for lower level utilities and libraries (code that other developers can use to help write their own code) than user-facing applications that normal users will actually run. Nethertheless, the majority of software users will run on Linux tends to be free and open source. This is actually one of Linux's greatest strengths, as people who make improvements and modifications to Linux software do so with the intention to distribute it to the wider Linux community, rather than hoarding it to sell it or build a seperate platform with.

What does Linux look like?

If you've been paying attention, you can probably guess the answer: there is no one "look" or "user interface" for Linux. Technically, the common "user interface" of Linux would be Bash, the command line system used by the majority of versions of Linux. So, Linux's unifying "look" would be this:

Screenshot of a basic Bash prompt

Not very inviting, is it?
A lot of other people agree as well, which is why there are projects to create graphical shells that provide unified experiences for users to actually use applications on top of. These are called Desktop Enviornments, or DEs, and they are what the majority of Linux users actually interact with day-to-day on their system.

Looks a lot more usable now, doesn't it? As such, there is not "one" desktop for Linux, rather the Desktop Enviornment is instead chosen either by the version of Linux the user uses or by the user themselves. Desktops also tend to come with a software suite of things like settings managers, text editors, file browsers, image viewers, etc, however you can install a DE without all of the extra applications if you don't want them. You can also use applications made for other DEs as well. You can even install multiple DEs on one system and switch between them on login.

Desktop Enviornments often tend to have a high degree of customization possible by the user to create the experience they want, both in terms of workflow and of UI theming. (Though the level of customization depends on the desktop.) This allows the user to create an experience tailored to them, rather than having a set desktop experience everyone is supposed to use.

What are the "versions of Linux?"

Throughout this page, you may have heard the phrase "versions of Linux." These variations of Linux run on the same kernel at their core, but can differ in terms of system components, desktop environment, system configuration, and application distribution system.

The people that create these variations distribute their software and configurations to create their operating system that the user can install, as such, they are called Linux distributions, or colloquially refered to as distros. The teams and communities that create these distros can be communities of volunteers that create and maintain these distros in their spare time, they can be corporations that want to utilize open source software to run and develop applications that they need to use, or they can be a mixture of both, with a community-run distro that has development sponsored by a bigger corporate entity.

If you've heard at least a tiny bit about Linux before, you probably know of at least a couple of popular distros (Ubuntu, Linux Mint, Fedora, Gentoo, etc.). You also might know that there are a lot of them. A common complaint levvied against the Linux ecosystem by people unfamiliar with it is that too much effort is being put into building these seperate distros that aren't totally compatible with each other. If all these people came together to form one distro that catered to everyone's needs, Linux adoption could be much greater. The problem with that is that it is basically impossible to create a distro that can suit every possible user's needs. This due to the community-based nature of most distros.

Why are there so many Linux distros?

Some people prefer to have their software always reflect the absolute latest patch that the developer has written, without regard to rigourous testing. Some people instead prefer or need software that is thoroughly tested to work consistently and bug-free, even if it means that software is a little older. Some prefer being able to simply load up their distro and have everything configured by default to have a cohesive experience. Some prefer to have their distro ship as little software as possible to the point of not even having a desktop by default, allowing the user to install and configure software exactly how they like. And that's okay. However, expecting different types of users (and developers) to adhere to the same strict set of ideals without causing conflict is basically impossible. Without one large corporation controlling the operating system trying to give it as much mass appeal as possible, many distros instead specialize to target a specific type of user. This is the reason for large ecosystem of distros, as disagreements tend to result in forks, or the codebase of one distro being split off to create something new.

For example, Debian is one of the oldest distros in the Linux ecosystem, and has an absolutely massive selection of software to download. However, in the past, it had a reputation for being difficult to install and set up correctly. Due to the open nature of the Linux ecosystem, a company called Canonical was able to build off of the base the Debian provided to create Ubuntu, a distro aimed at more casual users who aren't experienced with Linux, quickly becoming one of the most widespread Linux distros around. However, after growing in size and scope thanks to the success of Ubuntu, Canonical began using Ubuntu as leverage to push its other products, leading to Ubuntu becoming a more corporate distro. A little while after Ubuntu was released, someone decided to take it and make a fork to solve percieved issues with Ubuntu and the Linux desktop as a whole. This distro would grow, becoming Linux Mint, another extremely popular distro. This distro is run by its own seperate community, rather than the Debian community or Canonical.

One could argue that Linux Mint and Debian's developers could team up, but both projects aim for very different goals, with Debian being focused on packaging software as-is for the user to set up, while Linux Mint is focused on creating a good out-of-the-box experience for users. This is an example of how the Linux distro ecosystem works.

While it would be more "efficient" to have everyone working on one version of Linux in theory, in practice, it would lead to a lot of conflict that would end up with one party controlling the development of Linux anyway. So, the fracturedness of Linux is the very trait that allows it to exist as it does. It might not be efficient, but it is this inefficiency that allows the freedom for new innovations and experiences.