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.
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.
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.
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.
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 a large tree forking into smaller and smaller branches. 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 tree I will be breaking it down to the Main Branches which a majority of Linux Distributions are forked which is as follows...
Slackware - 1993 - Slackware Linux by Patrick Volkerding is designed with the two objective functions, ease of use and stability. While often lacking in the newest package dependencies, though you can build from source, Slackware is bolstered by a very dedicated user base. Slackware was originally developed by Linus Torvalds in 1991, with the intention to develop a UNIX like Linux operating system, is now active with millions of users and developers. Slackware Linux provides users alike with a full featured system. This is considered the first in a great legacy of GNU/Linux.
Debian - 1993 - The Debian Project is an association of individuals joined with the cause of creating a free operating system. Debian systems currently use the Linux kernel. Linux is a software started by Linus Torvalds and is supported by thousands of programmers. Debian comes with over 50,000 packages, compiled in their repositories. Like Slackware, Debian is like a tower. At the base is the kernel, on top of that are all core utilities, then all the software that the user installs, and at the top is Debian organizing and fitting everything so it all works together.
Red Hat and Fedora - 1995 - RHEL a Linux distribution developed by Red Hat and is targeted toward the commercial market. Red Hat uses strict trademark rules to restrict free re-distribution of its officially supported versions but still freely provides its source code. Red Hats primary source of continuation and support comes from The Fedora Project which is funded by Red Hat. Fedora is a Linux distribution developed by the community and owned by Red Hat. Fedora contains software distributed under a free and open source license. Fedora is focused on innovation over the stability of RHEL, integrating new technologies early on and working closely with upstream Linux communities. Fedora also offers Fedora spins which are built with specific sets of software, offering alternative desktop environments or specific interests such as gaming, security, design, scientific computing and robotics.
Linux From Scratch - 1999 - Linux From Scratch is a project that provides you with the steps necessary to build your own custom Linux system. Primarily used as a learning tool, there are a lot of reasons why somebody would want to install LFS. Foremost for LFS's existence is teaching people how a Linux system works internally. Building an LFS system teaches you about all that makes Linux tick, how things work together, and depend on each other. And most importantly, how to customize it to your own taste and needs. As an active Linux user who desires to make their own distribution you can participate by using LFS.
Gentoo - 2002 - Gentoo Linux is a Linux distribution built using the Portage package management system. Unlike other distribution's package managers Portage is a true ports system in the tradition of BSD ports, but is Python based and sports a number of additional features.
Arch - 2002 - Arch Linux is an independently developed distribution targeted at competent Linux users who want to customize and build their own distribution but is unwilling to use LFS or Gentoo. Operating on a rolling release system, Arch can be installed from a CD image or via an FTP server. The default install provides a solid base that enables users to create a custom installation. In addition, the Arch Build System provides a way to easily build new packages, modify the configuration of stock packages, and share these packages with other users via the Arch User Repository.
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.
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.
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.
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. To find GNU/Linux based alternatives to popular software you can explore here https://alternativeto.net/platform/linux/
This is a quick description of Software Minimalism and philosophy as well as the overarching ideals of the philosophies that branch off from it. Software Minimalism is a philosophy inherent to many GNU/Linux distributions and other Unix like operating systems, a common talking point among software enthusiasts. Software Minimalism encompasses the Unix Philosophy. You can read more here as I will be going over most if not all mentioned in the following...
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix developers brought their main focus to software, which was to be modular and reusable. This spawned the "software tools" movement. Over time, the leading developers of Unix established a set of cultural norms for developing software, these norms became as important and influential as the technology of Unix itself, this has been termed the Unix philosophy.
The Unix Philosophy is often summarized as...
These both lead us the to the Suckless Software Project, suckless.org is a community of programmers working on minimalist free software projects with a focus on simplicity, clarity, and frugality. The group developed dwm and wmii window managers, surf, tabbed, and other programs that are said to adhere strictly to the UNIX philosophy of "doing one thing and doing it well." The suckless community was founded by Anselm R. Garbe from Germany in 2002. He became a vocal proponent of the suckless philosophy, saying that "a lot went wrong in the IT industry recently ... be recognized in order to rethink the common practice, and perhaps to think about the time when Moores law stops being a valid assumption." The suckless manifesto deplores the common tendency for "complex, error prone and slow software that seems to be prevalent in the present day software industry", and argues that a programmers performance should not be measured by the number of lines of code he writes. The development team follows the New Jersey style of "Worse is better" and adheres to the KISS principle, Keep It Simple Stupid.
By Following the Unix Philosophy we can...
A system cannot be minimal if it uses Poettering made software or any free-desktop maintained software, this includes...
While most modern GNU/Linux Distributions begin to stray from the Unix Philosophy, there are few that adhere to it more so than others. Though this section could be rendered as irrelevant for those who are knowledgeable in GNU/Linux and Unix like operating systems, all can customized and changed to meet the Suckless Software Minimalism standards.
I would also like to mention that in regards to Net Installs or other Minimalist Linux distributions that use the GNU userland and systemd are to be considered not minimal systems but you can also include...
Currently most GNU/Linux and BSD distributions use the X Window System for drawing the desktop, while the X System does not manage the windows, instead it depends on a special client application called a window manager. The window manager moves and sizes windows in response to user input. Window managers can be divided into these three categories...
Stacking - They allow windows to draw their contents one on top of another on the desktop, starting with the one on the bottom and going up in the "Z order".
Compositing - Provide a buffer for each window to draw on and then compose those buffers together creating the desktop image. This type of window manager allows use of semitransparent windows.
Tiling - The windows do not overlap. Tiling Window Managers can also be divided into...
Full Dynamic Window Managers
Full Stacking Window Managers
Full Compositing Window Managers
Minimal Dynamic Window Managers
Minimal Tiling Window Managers
Minimal Stacking Window Managers
Any configuration of Operating System and Window Manager would suffice as long as used with Suckless or similar software. While Software Minimalism can be an extreme approach to computing, it can be extremely helpful in learning about and appreciating GNU/Linux. I would implore you do take some time and read more about the previous software and test out some the Linux and BSD distributions to see if you find any you fancy. Remember however that GNU/Linux is fun to use and a exploratory process. Do not worry about abiding by this philosophy if your personal needs are not met.