Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Linux

This section will introduce the family of Operating Systems commonly referred to as Linux. The knowledge and skills you acquire here will also apply to OSes more broadly, especially in the Unix family (macOS, BSD, Android, etc). It cannot be forced, but it is HIGHLY recommended that you follow along with a Linux OS. Big Tech options are considered malware/spyware/adware and off-topic for the entire platform. Community assistance is provided ONLY for Open Source options, and the bulk of that community is likely most familiar with Linux.

Getting Started

You don’t necessarily need a Linux computer to begin this course. There are a number of ways to use a Linux environment. You can try any of the following (sorted easiest to hardest):

  1. DistroSea - free ephemeral Linux desktops in your browser (select Linux Mint or Zorin)
  2. OnWorks - another option of above (select Ubuntu or ElementaryOS)
  3. If you are already familiar with Virtual Machines (VMs), you can run a Linux VM.
  4. Run a “LiveUSB” - this is an install of an OS onto a USB drive.

Caution

Remember - be careful with your time! Learning something foreign (like running a VM or a LiveUSB) can quickly become exhausting if it doesn’t immediately go right. Use what works, you will learn all these skills in later courses.

That said, it is recommended, and you will likely want a Linux machine very soon, for the Yellow Level material. We will learn how to flash an OS to existing hardware early in Yellow Level, so if you prefer to DIY, stay tuned.

If you wish to purchase a pre-built device, review the Freedom Tech 101 Methodology and be sure to jump into our Community channels for assistance. Please complete your White Level first, and make sure you have a confident selection using the aforementioned resources, especially if on a tight budget. Buy once, cry once!

What is Linux?

Originally, Linux was a kernel - a critical OS component that manages booting and basic hardware operations. It was created by a Man named Linus Torvalds, who maintains the core project to this day. This kernel was the ‘missing piece’ to a series of tools from The GNU Project, and after it was made available, GNU/Linux was born. Today, much to GNU-purists’ chagrin, the entire family tree of Operating Systems that stemmed from GNU/Linux are now commonly called ‘Linux.’

Distributions

A distribution, or distro for short, is often likened to a Linux “flavor.” Since Linux is infinitely customizable, many organizations have formed to build and share their favorite ways to use Linux. As a result, there are a lot of Linux distributions. These can be broadly categorized based on their positions in the family tree. Below are the most popular distros upon which most other distros you see are based:

  • Debian - By far the largest community - meaning the most available support, many builds for beginners. Packages are held back for stability.
    • Examples - Debian (the base), Linux Mint, Ubuntu, ZorinOS
  • Arch - A ‘rolling release’ distro, meaning updates are shipped as ready and the latest packages are always available. A strong community, but they are not as welcoming and will often just insist that you RTFM (Read The Fucking Manual).
  • Fedora - The base for IBM’s RHEL (Red Hat Enterprise Linux). Well-engineered, but unfortunately we will generally avoid it due to trends in IBM’s development of this platform, and it’s attempts to infect the broader Linux ecosystem.
  • Android - Familiar as the OS for many phones and tablets, this is also the basis for many other devices, such as TV sets, whiteboards, and automobile infotainment decks. Covered in courses on mobile devices.

There are many others, notably Gentoo, Nix, Slackware, and Linux From Scratch (LFS). We will likely cover these in later Linux courses. That said, we must keep things simple, and therefore documentation and support will be provided mainly for two branches of the Linux family: Debian and Arch.

Desktop Environments

One of the first choices that a distribution will make (or offer, if they support several) is which Desktop Environment to use. A Desktop Environment (DE) is essentially the entirety of the GUI that you interact with on your OS. It is possible to run Linux without a DE. Some prefer to use a lighter weight Tiling Window Manager (TWM), which as you might guess, simply manages tiled windows, rather than providing taskbars, menus, or a desktop. You can also run Linux directly from a terminal shell, something we will get very familiar with in later courses.

There are many Desktop Environments, and plenty of opinions surrounding those options. Here are the most common choices:

  • KDE / Plasma - Brings the “kitchen sink” - modern, featureful, and packed with default applications. As you might imagine, this is resource-heavy, and therefore recommended for more modern (or at least powerful) hardware.
  • Gnome - Modern, minimal but extensible. Runs on most hardware and brings sensible defaults and basic tools.
  • XFCE - Extremely lightweight, minimalist but featureful. Fast and responsive, perfect for bringing old hardware back to life, or if you just like to keep things simple. No frills.

There are, as you may have guessed, many more, and you can start or find further discussion in the community channels. We will cover Tiling Window Managers in later courses.