Lets Break Down Linux, The Confusing Stuff For People New To Linux and To The Community.
The world of Linux, can be insane. It's confusing. It's forked and fragmented. People may have heard of Linux, but not Ubuntu, or maybe the other way around. The rise of Android has brought the word Linux into a lot of people's periphery. Trying to explain Linux to the average person is way too hard, so I'm going to try to explain Linux to people who are computer literate, and want to know more about Linux.
What is Linux?
Linux Is An Operating System Like MacOS or Windows Right?
Android is an operating system. Linux is a kernel. In operating systems, the kernel is the most important part, the center that allows all of the software to use the many types of hardware. In an Android smart-phone the Linux kernel is letting your virtual keyboard know which letter your touching, and then tells the modem or wifi how to send your text message. It also tells your graphics chip what your apps are trying to display. The Linux kernel, by itself, with nothing else, is not usable. It requires layers, some are invisible and then there's the "userland" which is what we see on our displays, and what all the apps we use are built upon.
For the most part, when people are talking about "the Linux operating system", they may just call it Linux, but it's more accurately called GNU/Linux. What's GNU? GNU is actually older than Linux, and stands for GNU's Not Unix, a literary play on acronyms where the first letter of the acronym is the acronym itself. This is common in the free and open-source software community. Another example of this is the programming language PHP, which stands for PHP Hypertext Preprocessor.
GNU is a collection of software that originally ran on the UNIX operating system, which GNU's purpose was to replace eventually. In 1992 GNU included all the tools needed to build the rest of an operating system, but it didn't have a kernel, so you could only use GNU's software on top of UNIX, Minnix, or some other UNIX-like system. The Linux kernel was built using the Minnix operating system and GNU's tools.
With the Linux kernel and GNU, you had a working Unix-like operating system that wasn't useful to most people, but it was perfect for the group of people it was intended for. Computer programmers and enthusiasts who would eventually build everything else needed to make Linux useful for everyone else.
Ubuntu, Debian, Red Hat, Arch-Linux, Linux-Mint, Open Suse. Are all GNU/Linux distros, short for distributions. Linux distributions are all different configurations and collections of the thousands of possible pieces of software built for GNU/Linux. In a technical sense every distro is a Linux "OS". Additionally, other Linux operating systems without GNU, like Android, are also distributions of Linux.
One of the most important differences between distros is the desktop environment, which is the user interface and associated apps that make up the graphical interface and the extended integrated system. There are many different desktop environments, Gnome, KDE, Mate, Cinnamon, and XFCE are just a few of the most popular. Despite the large number of DE's, a majority of them are built using key components of the two "main" desktop environments, Gnome and KDE.
Gnome and KDE have large teams of developers behind them that make not only apps like file managers, music players, calendars etc, but key components like window-managers, window-decorators, settings and configuration control panels, and plug-in/integration frameworks.
The other smaller DE's usually use these functions behind the scenes, and may change the way they look along with the name. Usually when the name changes it is called a "fork" of the original software.
Also important is the very different approaches the big two DE's take for user interface & user experience.
KDE is complex, feature rich, and nearly every aspect is malleable and configurable in a wide array of different ways.
Gnome is focused around simplicity.
Some would call it too simple, but Gnome addresses this issue with their comprehensive library of "extensions". Gnome Extensions are simple to install, and vary from small things like hiding menus all the way up to adding comprehensive reworked layouts of the entire interface.
Many GNU/Linux distros use some or all of Gnome's stack under the hood. For instance, Elementary OS's Pantheon and Ubuntu's previous Unity desktops are both very different in appearance and use, but rely on mostly Gnome Project frameworks and libraries. I'll add some screenshots of some of the larger desktop environments:
Gnome Shell AKA Gnome-3:
KDE 5: Plasma
Choosing a desktop environment is really about style and preference. No matter which desktop you choose, you'll be able to install the same software on any of them, with a few minor exceptions for very specific packages for some desktops. For instance KDE's KMail e-mail manager can be installed on your Gnome desktop.
Packaging and Package Managers
Another key difference between distributions is in packaging. Most source-code packages are distributed as "Tarballs", essentially compressed archives, the same thing as a zip file. However, pre-compiled binaries of distro-specific packages like .DEB's and .RPM's are most widely used. Debian packages are DEB's and Red-Hat packages are RPM's. Debian's "dpkg" system is the base package manager, and "apt" is the simpler, higher-level front-end manager. Red-Hat uses the Yellowdog Linux Updater Modified, AKA "yum". Fedora, which is based on Red Hat, uses Dandified Yum, known simply as DNF. Open-Suse, also uses the RPM format, but uses it's own unique package manager called Zypper. Another notable, and unique manager is Pacman, used by Arch-Linux. Pacman uses pre-built binaries in the common Tarball archive, but can also compile or build packages from source code.
Universal Packaging, Well Almost.
Because of the huge range of formats and managers used by the multitude of distros, Canonical, the company that produces Ubuntu, decided to create a new "universal" packaging system called Snap packages. But then Red-Hat/Gnome created a similar competing format: Flatpaks. Because it's Linux, there can't be just two choices, so a third format also arose, Appimages. Appmages are simple, you just download and run. Snaps and Flatpaks both contain complex back-end systems that must first be installed before you can use the formats. The primary purpose of the three competing formats is that the package contains all of it's dependencies and is self contained and makes no requirements of the underlying Linux distro.
On The Shoulders Of Giants.
Because Linux and most of it's software is open-source and transfers that license to software built using it, new projects can fork existing work and improve or change it in any way the creators see fit.
This is common even in entire operating systems where the creators will build a new distinctive distro using the millions of lines of code of an existing system. For instance, ElementaryOS is built out of Ubuntu which was originally built out of Debian. But at the very base of nearly all distros we'll find two common systems, The FreeDesktop.org Linux base, and X.org window and display server. Elementary.io, the ElementaryOS website, includes this excellent info-graphic diagram that pays respect to the project Elementary was built on:
So Where Should I Get Started?
If you're interesting in trying out Linux, picking a starting distro can be a challenge, but there are many distros that are designed with you in mind. Ubuntu has been the user-friendly Linux distro for many years now, but Linux Mint is considered even more friendly to new users, and it's built on Ubuntu. Mint improves on Ubuntu with more packages installed by default that someone used to Mac or Windows would expect.
Ubuntu Mate is a lot like Linux Mint, and is designed to be as easy to learn and use as possible.
Choosing a Ubuntu-based distro means that most guides and tutorials for Ubuntu can be followed with that distro, and the Ask Ubuntu forum is an excellent source of answers to various questions or issues.
Arch-Linux is a powerful distro that comes with no desktop installed by default, and requires the user to install nearly everything manually. It's safe to say, new users should not use Arch-Linux. However, if you are very technically inclined, and open to a challenge, Arch-Linux is a good way to get a hands-on understanding of everything under the hood. The Arch-Linux wiki is also a great source for information even if you're not using Arch.
So the next question is, which desktop should you start with?
If you are a MacOS user, the Pantheon desktop from ElementaryOS is obviously heavily-inspired by MacOS and is also pretty user friendly, but not quite as friendly as Mint or Mate.
If you are coming from Windows, Cinnamon, Mate, XFCE, and KDE are all similarly laid-out to Windows, and should be fairly easy to pick up and get started with.
To install Linux you'll usually create a bootable live-USB stick, and most distros allow you to try Linux first without installing to your drive.
Who Should Not Use Linux:
This is very debatable. I often see people recommending Linux to people and making grand promises about it. Many Linux users are evangelists who want to preach it's virtues to the world at large. I also see people in comment sections and forums who are badmouthing Linux because it doesn't have this or that, or it's overly complex.
If you are someone who has difficulty doing things with Windows or MacOS, you probably should not use Linux.
If you rely on specific proprietary software like Adobe, Sony Vegas, Final-Cut Pro, or Pro-Tools you won't be able to install those natively on Linux, but you can try to install them using Wine. Wine is a powerful system that allows Windows programs to be run on Linux and can be perfectly capable of running many apps, but may cost some performance depending on your hardware. People have been known to even run games at reliable speeds with Wine. Before trying Linux, see if your must-have program/app works with Wine and try to find out how well it works.
It's probably safe to say if you're someone who cannot leave MacOS for Windows or vice versa, it won't be any different with Linux. If you're willing to try alternatives, Linux has replacement solutions for many major applications.
- Libre Office can do most Microsoft Office tasks, and open MS-Office files.
- GIMP, Krita, and Inkscape are all 2D design tools that can replace Adobe's Photoshop and Illustrator.
- Darktable is a great alternative to Adobe's Lightroom and can process and develop RAW images including Adobe's .DNG format.
Many key programs for MacOS and Windows are available on Linux too, notable ones such as:
- OBS Studio
- Firefox, Chrome, Brave, and Opera web browsers.
- DaVinci Resolve & Lightworks video editors
- Android Studio
What About Games!?
Gaming is an even more nuanced decision because it's constantly getting better literally on a daily basis. In 2014 when I started using Ubuntu, I wouldn't be able to say much good about using Linux. If you use Steam for most of your gaming you're in a better starting position. Steam's Steam Play uses Proton to allow many, possibly even most, games to run on Linux with Wine in the background. You can check https://www.protondb.com/ to find out how well specific games work.
Additionally, if a game you own on Steam has a native version for Linux, you can install it without paying again and it may even run better! Metro 2033 & Last Light both run better with Linux for me than they do on the same machine with Windows 10. But Alien:Isolation was unplayable with a Radeon GPU.
My Personal Use of Linux:
I do technical and creative work with open-source alternatives. I produce my Youtube channel using only Linux and my Android smartphone. I record & edit 1080p HD video, design 2D graphics and logos, and even produce my own music. I'll be up front and say that I didn't edit video or regularly produce music before Linux so I didn't have to do that transition. I did however switch from Photoshop & Illustrator to using GIMP & Inkscape for drawing, photos, and graphics. If you'd like to see some all of my videos make use of my music and graphics on my Youtube channel:
Please feel free to ask questions and I wish you luck!