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...

  • A Disclaimer
  • What is GNU/Linux?
  • The Philosophy of GNU/Linux and Why use GNU/Linux
  • Finding a Distribution
  • What is Systemd? and Why Systemd Matters
  • What is a Desktop Environment and Finding a Desktop Environment
  • Free Open-Source Software Alternatives
  • Conclusion
  • A Disclaimer

    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.

  • https://www.gnu.org/philosophy/philosophy.html
  • https://en.wikipedia.org/wiki/Unix_philosophy
  • http://www.catb.org/esr/writings/taoup/html/ch01s06.html
  • 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...

  • 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.

  • https://eldritchdata.neocities.org/GNULinux/DistroList.html
  • https://distrowatch.com/
  • 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...

  • Download the disk image or ISO of your chosen distribution
  • Verify the integrity of the download if a checksum is provided (This can be skipped though not recommended to do so)
  • Use an image tool recommended in your distribution's install notes to copy the ISO to your USB and make it boot-able.
  • 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.

  • https://eldritchdata.neocities.org/GNULinux/Systemd.html
  • 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.

  • Xfce / 1996 / C / GTK+ / GPL, LGPL, BSD / ~100 MiB
  • Enlightenment / 1997 / C / EFL / BSD / ~80 MiB
  • KDE Plasma / 1998 / C++, QML / Qt / LGPL / ~300 MiB
  • GNOME / 1999 / C, C++, Vala, Python, JavaScript / GTK+ / GPL, LGPL / ~240 MiB
  • Cinnamon / 2011 / C, JavaScript, Python / GTK+ / GPL / ~170 MiB
  • MATE / 2011 / C, C++, Python / GTK+ / LGPL, GPL / ~120 MiB
  • LXQt / 2014 / C, C++ / Qt / GPL, LGPL / ~110 MiB
  • 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...

  • Web Browsers
  • System Tools
  • Office
  • Email Clients
  • Media Players
  • Broadcasting Tools
  • Image Editors
  • Audio Editors
  • Video Editors
  • Web Browsers

  • GNU/Icecat Gnuzilla is the GNU version of the Mozilla browser. Icecat's main advantage is an ethical one and while Firefox is fine for most users, I am preferential to Icecat.
  • Ungoogled Chromium A Google Chromium variant for removing Google integration and enhancing privacy, control, and transparency. An overall far more improved Chromium. But once again Chromium should be fine for most users.
  • System Tools

  • htop If you are looking for a simple command-line tool, htop is perfect. Navigate to a process and kill it. It is way easier and faster than the traditional top Command Line Interface tool that is common in Linux distributions. You can also kill multiple processes at a time.
  • rsync A simple and clean terminal based backup tool. Worth checking out before your next big software update.
  • gParted A visual and simple way to add, remove, format, and edit disk partitions.
  • Geany Geany is neither a text editor nor a full-blown IDE, it is a code editor. Compile and run software, view a list of defined functions in the current file.
  • Wine An application for running Windows software on operating systems that are normally not supported. So if Windows software is a must and you still want to move on from the core system by moving to Linux, then Wine is a good alternative to get you started.
  • Emacs GNU Emacs is an extensible, customizable text editor and much more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. If you find yourself wanting a one size fits all program, GNU Emacs is that program.
  • Office

  • Libre-Office A wonderful Microsoft Office replacement with more features to add if needed. Full suite includes Writer, Calc, Impress, Draw, Base, and Math.
  • Focus Writer A neat bit of software, a full screen windowless writer program. Used it a bit in the past and I would recommend it for anyone who is easily distracted.
  • Email Clients

  • Thunderbird Simple to use and often prepackaged in major Linux distributions. The interface can be a bit cumbersome but easy to get over.
  • Claws Mail A lighter alternative to Thunderbird if you need something without many dependencies.
  • Media Players

  • VLC VLC is a pretty simple media player which is open source and free as well. It supports almost every type of file formats. Any addition types can easily be added with plugins.
  • MPV My personal favorite, Hackable and embeddable. I have plenty of Firefox/Icecat plugins that download or stream right to MPV, and its interface is gorgeous.
  • Broadcasting Tools

  • OBS You can heavily customize it, add your own template, and more. OBS is suitable for both personal and professional users. Highly recommended after some basic introductory learning.
  • Image Editors

  • GIMP A worthwhile alternative to Photoshop, plenty of plugins to make your perfect work environment. There are even plugins to make GIMP function and look like Photoshop.
  • Inkscape A vector editor in the same family as Adobe Illustrator. Prepackaged with useful features rivaling its non-free contemporaries.
  • Krita Created by the KDE team. This tends to be the digital artists choice over both GIMP and Photoshop for digital painting. If you are looking for the best of both Inkscape and GIMP, I would give Krita a try. https://krita.org/en/item/interview-with-teteotolis/
  • Audio Editors

  • Audacity Great out of the box and offers more plugins to expand its functionality. I have used Audacity for years to both do audio rips from video as well as audio file conversions for previous blogs and podcasts.
  • Video Editors

  • Blender Popular for 3D works and animation, you can also edit video. Blender has been used actively both by hobbyists and professionals alike. A worthwhile piece of software.
  • Open-Shot Easy to look at and quick to learn. If you are looking to begin making or editing videos, Open-Shot is where I would start.
  • 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.

  • https://alternativeto.net/platform/linux/
  • Conclusion

    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.