Things to Know About Your Computer
I recently was skimming through the comments of a post about free and open source software (FOSS), and I saw a few people arguing back and forth about Linux. The ends of the rope in this tug of war were as follows:
Installing Linux in the first place requires so much knowledge about computers that it's out of reach of the average computer user to do it themselves.
The average computer user can just look this information up (from a variety of sources) and learn, which would be good for them.
I'm not here to pick sides. Asking my mom to install Xubuntu on her computer by herself would probably be too much, but with some guidance it would be doable. What this debate doesn't cover is how hard it can be to search for something when you don't even have the vocabulary to describe your problem. Once you get to the stage where your computer boots from the install disc or flash drive, it's no different from following the installation wizard of a new program. Getting to that point has some prerequisites.
In the interest of helping people start the reclamation of their computing experience, I'm gonna touch on some of those prerequisites here, to serve as an aid to beginners in search of instruction.
If you're a PC gamer, you might already have these memorized, but for anyone else, knowing what parts your computer is built from is useful. The most important things to know are CPU (central processing unit); GPU (graphics processing unit), which may be discrete (a separate piece of hardware) or integrated (built into the CPU); motherboard (make and model, as this determines your BIOS—we'll get to that); and how much RAM (random access memory) you have.
If you don't know these things about your computer, put the screwdriver down. There's very likely some software already on your computer that can show these things to you.
Windows users: search "dxdiag" in the start menu or type it into the dialogue box opened by Win-R and press Enter. If it prompts you with a little dialogue box, just press OK.
Macintosh users: click on the Apple icon and select About This Mac.
This is useful information because it means you can search "Linux distros for NVIDIA GPUs" if you're running a GTX 1050 Ti or "lightweight Linux distros" if you only have 6 GB RAM. GPU compatibility is becoming less of an issue, but it's worth keeping in mind. As far as RAM is concerned, basically every Linux distro (short for "distribution"—we'll get to that later) is lightweight in comparison to Windows 10 or 11, but some may intentionally give up some aesthetic qualities in their desktop environment (the graphical interface installed with that distribution) in order to run on less capable machines.
Most of the other parts in your computer aren't going to be an issue from a compatibility standpoint. I can't rule those things out, of course, but whatever storage drives and Wi-Fi cards you have will probably fine. Anything connected externally (mice, keyboards, speakers) will also likely have common enough drivers that you don't need to worry about them.
(I'm happy to say that getting Linux to talk to a printer is a hell of a lot easier now than it was when I first started tinkering with it.)
You are going to hear about drivers more when you use Linux than when you use MacOS or Windows. A driver is a piece of software that allows other pieces of software to talk with your hardware. They generally run inside the kernel, which is the part of your operating system that handles files, hardware connections, and dividing up CPU time and RAM for different programs on your computer to run.
Different kinds of devices have different drivers. Human Interface Devices (HIDs) like mice and keyboards have their own drivers. Webcams and microphones have their own drivers. Your GPU has a driver. When a program on your computer has a GUI, it'll call a piece of code named something like draw(). Your kernel sees this and passes that along to the graphics driver, which then translates draw() into instructions that the GPU understands.
Drivers, like any other software, can have bugs. They can also be outdated, when compared to some piece of hardware. A new driver may have been written with your hardware in mind, and having an old driver may mostly work, but fail in certain circumstances.
The Linux kernel is steadily being updated with drivers for all sorts of hardware, particularly game controllers (support was recently added for Rock Band 4 guitar controllers of all things), but just be warned that it's possible something you use may not work out of the box, and you may need to visit your chosen distro's help page.
The basic input/output system is a program included on your motherboard, meaning it's always available even if your hard drive fails. Its job is to configure certain CPU and RAM behaviors, implement certain security features, and locate operating system files it can use to bootstrap (commonly abbreviated to "boot") the OS. If you plan on switching to Linux, you will have to go into your BIOS at least once.
Your computer as purchased was configured to boot from its main storage drive. In order to install Linux, you will need a live CD (assuming you have an optical drive) or a live USB flash drive. "Live" means that the disc or drive has a copy of your distro on it such that your BIOS can boot from it.
Getting into your system's BIOS varies by motherboard. There will usually be a button you need to press as your computer is first turning on (I recommend tapping it repeatedly). This could be one of the function keys (usually F2 or F12, in my experience), Delete, Home, or some other common feature of a keyboard.
It's common now for the Fast Boot option to be enabled in the BIOS by default, which skips the motherboard splash screen intended to catch these keyboard inputs to drop into the BIOS settings menu. There are ways around this, but they may be different for your machine. Fast Boot is not actually that much faster; it's really more to keep people from doing stuff like this.
Once you have access to your BIOS, you have to change your boot priorities, usually by moving USB and/or optical drives to be higher than the normal boot drive. This means that if you have a disc in the optical drive or a USB stick plugged in, the computer will try to boot from them before the hard drive. Anything not bootable gets skipped.
Even if you don't ultimately install Linux on your computer, knowing how to get into your BIOS may be useful later if you want to overclock your CPU or boot into your live CD/drive to rescue files from a corrupted OS. Also, using a live CD/drive means you can try the OS out a little bit before you commit to installing it.
What Is a Linux Distro Anyway?
The whole Linux ecosystem centers around a common kernel (occasionally with special or optional features applied). Relitigating the mythology of Linus Torvalds is out of scope for this document, but the kernel he started (and which myriad other developers united to contribute to) is the core of an operating system. It's a lot of hard work to make a kernel, and the kernel itself does a lot of hard work for the computer, but a computer is still useless if all it has installed is a kernel.
The distribution is a collection of software to accompany the kernel, typically including as a minimum* an init system (don't worry about this), a package manager, a web browser, a desktop environment, a terminal emulator and a shell, a text editor, and a media player. All of these things on essentially all distros are changeable, with varying degrees of difficulty. Swapping to a new web browser is no different on Linux from Windows or MacOS, and you're perfectly well able to have more than one installed at a time. Swapping to a new desktop environment for a new look and feel? This can be annoying and sometimes fail in hard-to-fix ways.
When choosing your distro as a beginner, these are the questions you should prioritize:
Do I like the way this looks? (Save yourself the trouble of installing a new desktop environment later.)
Is this distro optimized for an activity I do commonly? (You don't have to get a gaming distro to play games, but it can be helpful for reducing setup time.)
Are my PC's specs sufficient for running this distro? (The answer is probably "yes" unless your computer is a toaster.)
There are lots of Linux Nerds out there who will try to convince you that systemd is the devil or that Canonical has fucked with Ubuntu so bad you might as well use Windows instead. They aren't necessarily wrong, but the difficulty of going from a non-Linux system to a Linux system is much greater than merely swapping distros. Your first choice doesn't have to be perfect; you're never locked into one particular Linux distro. Any software that works on one should work on the others.
Wait, What's a Package Manager?
If you've used an app store on any platform, you've essentially used a package manager. From the user's perspective, this is a program that you use to install, update, and uninstall other programs. It also handles software dependencies gracefully. Sometimes, two (or more) programs on your computer use the same software library, which is some code written by a programmer for other programmers to use in their software. Part of a package manager's job is to ensure that only one copy of such a library is installed, rather than installing one for every program that uses it. Another part of a package manager's job is to remove this library if everything that uses it is also removed.
Package managers are typically invoked in a command line interface (that is, in a shell running in a terminal emulator), but many of them have newbie-friendly graphical interfaces now.
Installing a program from your package manager on the command line is actually one of the easier things to do without a GUI, though, so it's worth trying out.
Not all programs can be installed through a package manager. The downside of package management is that it requires a distro's community to maintain repositories, which are collections of code and installation instructions for programs users might want to install. Not everything will be in the repositories, but you can build and run any software for which you have the source code (and the appropriate compiler), and that's any FOSS.
Make a backup of anything you'd like to keep on an external hard drive. Installing Linux on its own generally entails reformatting your hard drive, which will make any data on it inaccessible. If you've heard of dual booting, it requires you to shrink your first OS's partition to make room for another OS elsewhere on the drive (or even having a second drive to boot from). Shrinking drive partitions may require you to remove data if you've used a lot of space, so you'll have to offload it to storage anyway.
Take some time to search things like "linux distros for gaming" or "linux distros for video production" or "linux distros for old PCs" (or whatever your specific needs are) and see what folks recommend.
Get your hands on a USB stick (or some CD-Rs if you have an optical drive) and a tool like Rufus.
Be ready to read and possibly ask for help on the internet.
There's a bit more work involved in setting up a Linux system, but the alternative is to keep using an OS that decides what's right for you while it harvests your activity for data.
* Some distros, like Arch, will give you almost nothing at all, with the expectation that you know 1) know exactly what you want to install and 2) how to install these things from a command line interface. Maybe don't start with plain old Arch, but a derivative like CachyOS (which I use) that comes out of the box with useful default software is probably fine for a beginner.