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.

Why are there so many 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 player.

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. A good analogy to help explain why would be the automotive industry.

Imagine you work at an automobile company that makes a lot of different types of cars. Someone comes in to your manufacturing plant and says, "Why are you wasting so many resources designing so many different types of cars? It would save you so much time and effort to just make one kind of car that will work for everyone's needs!" That person, would of course, get laughed out of the manufacturing plant, because it is impossible to design a car that every single person would be happy with. Some people want smaller, more fuel efficient cars because they only need to carry out basic errands. Some people needs minivans for transporting families. Some people need off-road cars for going offroad. Some people need race cars for racing. And that's okay. Trying to design a car that gives everyone what they want will just end up in a car that satisfies no-one. People use their vehicles as a tool for different purposes, and different cars are therefore built different to accomodate that.

Linux distros are the same way. 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. This is the reason for large ecosystem of distros.

Back