______     __  __     ______     __    __  ______     ______    __
/\  ___\   /\ \/ /    /\  __ \   /\ \  / / /\  __ \   /\__  _\  /\ \
\ \___  \  \ \  _'-.  \ \ \/\ \  \ \ \/ /  \ \  __ \  \/_/\ \/  \ \ \
 \/\_____\  \ \_\ \_\  \ \_____\  \ \__/    \ \_\ \_\    \ \_\   \ \_\
  \/_____/   \/_/\/_/   \/_____/   \/_/      \/_/\/_/     \/_/    \/_/

a digital minimalist.
posts tags

Intro to Linux - Chapter 3

linux intro

Linux Terminology - Distros, Package Managers, and More

Author: Skovati, Date: 2020-12-26


So, say you wanted to install Microsoft Windows on a new computer. You’d go to the official Windows download page, download that one specific ISO, burn it to a USB or DVD, and insert it into your computer. The installation process for Linux is quite similar, except instead of there being one official download, there are thousands of different distributions of Linux, know as distros. The only thing each of these distros have in common is that they all use some form of the Linux kernel. Some have different package managers (which we’ll get to shortly), different versions of the kernel, different core utilities (like the GNU system I talked about last chapter), different release schedules, or different initialization systems. A common behavior with these distros, since all the code is free and open source, is “forking”, where a new distro uses an existing distro as a base. An example of this is the relationship between Debian and Ubuntu, two very popular distros. Since Ubuntu is based on Debian, anything written for Debian will also work out of the box on Ubuntu. This relationship means that you can have interoperability between distros, and it limits fragmentation within the ecosystem, but still offers thousands of choices for the user on which flavor of Linux they want to install.

Here I will give a small summary of the most popular distros and their derivatives. As previously mentioned, there are thousands of distros, but a dozen or so hold the vast majority of the user base.

Other more obscure distros worth mentioning

Here is a ridiculous look at all the different distros of Linux.

Package Managers

I’ve been talking about these package managers like apt, dnf, and pacman, but what actually are they? I think the best way to explain it is to compare the software installation process in Linux vs Windows. So, you are likely familiar with how to install something on Windows: you open up Microsoft Edge, suffer through a Bing search to find the Google Chrome installation page, download the .exe file, and run it as an administrator, which installs Chrome on your machine for you. It is way easier on Linux. Essentially, each distro has what are called repositories, which hold the files for tens of thousands of different packages of software made specifically for that distro. So, to install chrome on something like Ubuntu, you would just type sudo apt install google-chrome in the terminal, apt (the package manager on Debian/Ubuntu) would run its magic, and a few seconds later Chrome would be fully installed on your system, no downloading random .exes from the internet and running them blindly. For what it’s worth, you can still manually install things if it happens to not be in your distro’s repos.

This style of package management has many pros:

Desktop Environments and Window Managers

The most obvious form of customization in Linux is how the desktop looks and feels. This is the responsibility of a desktop environment, which manages windows, the dock, status bar, icons, settings menus, login pages, and more. Some popular options include Gnome and KDE Plasma. When you download a distro’s ISO, they will likely give you multiple options for “flavors”, which include different DEs. So you can install Ubuntu with a Gnome DE, or install Ubuntu with KDE Plasma. Both are still Ubuntu, but will look and feel vastly different because the main visual software is by a different organization. I recommend Gnome as a starting place, but it is very easy to install and switch to different ones. A “Window Manager” is essentially just the part of a DE that controls the windows. Personally I just use a WM rather than a full DE, because I don’t need a fancy dock or a settings menu. I use bspwm and polybar for a lightweight desktop config.


Gnome Desktop


My bspwm and polybar config

Configuration Files aka “Dotfiles”

Another fantastic feature of Linux distros is that all of the configuration is held in so-called “configuration files”. Often these files reside in the users home directory (we’ll talk about filesystem organization in a later chapter) and are prefixed with a ”.” like “.vimrc”, hence the nickname “dotfiles”. You can see examples of some dotfiles in my GitHub repo. These hold all of the config for my window manager, text editor, pdf and image viewer, terminal, and more. Because this config is stored in text files, I can back-up and version control them with git, and if I want to reinstall my OS or switch distros, all I have to do it clone that repo and 95% of my configuration is done already—including automatically installing important packages. Try doing that in windows where you have to manually install every piece of software and change each setting by hand with a new install. This makes Linux very portable and replaceable; my laptop’s SSD could get wiped and I wouldn’t break a sweat, because I didn’t really lose anything. You will spend a lot of time customizing these files, but it’s time well spent, as they can stay with you during your whole career.

Chapter 4 - Installing Linux

the content for this site is CC-BY-NC-ND

the source code is MIT

git mail pgp