In this guide I will be giving a basic introduction to GNU/Linux for new adopters of GNU/Linux. This guide is for users looking to make the switch from Windows or Mac to a GNU/Linux distribution or current GNU/Linux users looking for another avenue of software to recommend, helpful tips, a quick reference to introduce new users as well. In this guide I will be covering...
I will be taking a small collection of my other GNU/Linux articles and using them in this introduction as a combined effort to make a streamline and easy to read introduction and is not intended to self-plagiarize. This this will mainly be a series of my personal recommendations and is not to be taken as a final say on the "Best" or "Worst" software as Linux is a world of preferences and philosophies, due to this range in types of GNU/Linux users I would like to make note to find your own way using Linux. If something does not work for your own personal use case, feel free to try something different. Also for brevity you will see GNU/Linux and Linux being used interchangeably, these terms are both correct when referring to Linux as a whole, but GNU/Linux is often considered "More correct" than just Linux.
What is GNU/Linux?
Linux or GNU/Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds and The GNU Project, started in 1983 by Richard Stallman who had the goal of creating a complete Unix-compatible software system composed entirely of free software. Linux at its core is just the Linux kernel and Linux, along with the GNU system, make up a complete operating system.
Together releases of GNU/Linux are often dubbed Distributions or Distros, which include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Commonly mentioned Linux distributions include Debian, Fedora, and Arch. Desktop Linux distributions include a windowing system such as X11 or Wayland, and a desktop environment such as GNOME or KDE. Because Linux is freely re-distributed, anyone may create a distribution for any purpose, you too may be so compelled to do so.
The Philosophy of GNU/Linux and Why Use GNU/Linux
This is often a highly debated topic in regards to how users of GNU/Linux believe GNU/Linux should be used based on personal preference, aesthetic, politics, and more. The basis of most of the following philosophies however is The Free Software philosophy, FOSS, or the GNU Philosophy, which is a focus of an open and shared operating system which is not only free as in money, often dubbed as "Gratis", but free as in freedom, dubbed as "Libre". The GNU/Linux system gives users more control over their computing experience than competing operating systems such as Windows, which could contain malicious features without the user's knowledge. Further reading on the many philosophical movements surrounding GNU/Linux can be found in the links below.
While I do recommend reading more about the movements behind GNU/Linux, do not force yourself to follow the tenants of these philosophies if it is against your own personal use case. Remember to find your own way using Linux. If something does not work for your own personal use case, feel free to try something different.
Finding a Distribution
Picking your first Linux distribution can be challenging for those who may not be too sure what they are actually looking for. In this section I will be giving a brief introduction to the main branches of Linux and the steps to take to pick your own Linux distribution that meets your needs. Often when looking into the history of Linux distributions they are often shown something like this LinuxTimeline.png This is often overwhelming to New and Old users alike due to the sheer scope and branches Linux has had over it's generations. To simplify this map I will be breaking it down to the Main Branches which a majority of Linux Distributions are forked which is as follows...
These are the foundation of most if not all other GNU/Linux distributions. When looking for a Linux distribution to use I often use these as a reference point and recommend staying as close to these main branches as possible when choosing a distribution. Doing do will often give you as a user a longer lifespan in your chosen distribution, more stability over all, and more support as a user when troubleshooting issues. Further reading about distributions, to take a look of the distributions I have used in the past, and along with my thoughts on them. Feel free to check below.
Making a boot-able USB in order to use GNU/Linux a often a simple task of finding a 3rd party tool and following the instructions if provides. Some recommended methods are as follows...
While many forms of Disk Imaging Tools exist, for those unsure about using or making a boot-able USB I will refer you to Unebootin to get you started since it is available for Windows, Linux, and Mac.
What is Systemd? and Why Systemd Matters
Systemd is a software suite that provides a collection of system components for the GNU/Linux operating system. The primary purpose of Systemd is to script and organize boot functions for GNU/Linux using a system and service manager, which is an init system. An init is a initialization program, which is the first process started during booting of the computer system. The init process is directly started by the kernel, in this case, the Linux kernel, and will continue running until the computer is shut down. Systemd used this init system to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. Systemd is often criticized, with arguments that Systemd suffers from function creep and being bloated. Systemd also has faced criticism over other software adding dependencies on Systemd, such as the GNOME desktop, which can cause a compatibility issue with other GNU/Linux and Unix like systems. But regardless of these issues, as of right now, the majority of GNU/Linux distributions have adopted Systemd as their primary init system, having replaced other systems such as SystemV and BSD init systems. This topic is often polarizing in the Linux community and if you use GNU/Linux for long enough, will eventually run into this topic. You can read more about my thoughts on Systemd below.
What is a Desktop Environment and Finding a Desktop Environment
A Desktop Environment is a graphical user interface or GUI commonly mimicking a physical desktop that you would see in a traditional office on your computer screen. A Desktop Environment also encompasses a lot of other tools to assist the user in graphical computing. Further more a Desktop Environment utilizes a widget toolkit, which provides a set of controls that display information to the user. Currently there are two big tool-kits, GTK (The Gimp Toolkit) and Qt (pronounced "cute").
Also I would like to point out something that is often conflated in the GNU/Linux community and would like to clear this up for New and Old users alike. A Window Manager is an implementation of a graphical user interface with a primary goal of managing the location and positioning of application windows on your screen, that is all. A Window Manager is not a Desktop Environment, and a Desktop Environment is not a Window Manager. However, a Desktop Environment does contain a Window Manager in its suite of tools.
A brief breakdown of the most popular and commonly used Desktop Environments. Categorized by date of release and resource usage along with additional details. In this list used a base install of Debian for each installation with the Desktop Environment, then wiping and re-installing for the next Desktop Environments. The only active window was the default terminal installed to minimize skewed results due to poor program optimization. These results are rounded to the nearest 10 MiB since on most machines these changes are admissible.
Starting with Enlightenment, XFCE, and LXQT being in the lower end of the specs, at or around 100 MiB of usage. I noticed with these Desktop Environments that boot up was very snappy, ranging from 5-10 seconds from boot to terminal. These lower spec Desktop Environments also have a common focus on a Mouse Centered work-flow. In this category based on resources, ease of use, and aesthetics, I would recommend XFCE to start. If you need to keep the looks of a proper desktop but also desire to squeak out a bit more power from you system, Enlightenment is a great option. And for those moving from Windows and need a familiar space I would look into using LXQt.
Following with Mate, Cinnamon, Gnome, and KDE these are our heavier usage Desktop Environments, these often show RAM spikes at about 150 - 300 MiB. Boot times vary, ranging from 20-45 seconds to terminal. I noticed a trend with these Desktop Environments as well, that they follow a more Keyboard Centered design for easier work-flow and Touch-Screen functionality. All are clean and look like a modern desktop I would recommend either KDE if you are coming from Windows and need a familiar space. Or for those wanting to feel what modern GNU/Linux is like, I recommend Gnome.
Free Open-Source Software Alternatives
When switching to GNU/Linux it can be difficult to find helpful and functional alternatives to common software while also maintaining your freedom. Using FOSS (Free and Open Source Software) can be liberating and allow you to work in a well maintained environment. Here are a few software alternatives that may be useful to you and may be what you need to switch to GNU/Linux. If I see any other interesting software alternatives I will be sure to add it to this list in the future.
The Categories for this list will be as follows...
With this selection of software I hope you find something that meets your personal needs that may also convince you to switch to Linux. And for those who did not find any of these programs suitable I would recommend looking below for something that meets your standards.
In this guide I gave a basic introduction to GNU/Linux for new adopters and current users alike. Hopefully I made a convincing appeal to you to switch from Windows or Mac to a GNU/Linux distribution or made it easier for current GNU/Linux users to convince their friends or colleagues to switch and introduce them to GNU/Linux. In order to keep this guide up to date I will be often returning to add more information in the future so be prepared for possible changes. Also be advised that GNU/Linux is a journey of personal use, find your own path, and do not allow others to shame you for how you do your own personal computing. Everyone is unique and how they use computers should be unique as well.