So, you want to switch to Linux?
Welcome to the operating of system of choice for big tech, smart thermostats, and femboys around the world.
Don't want ads and tracking baked into your computer's operating system? Tired of the system QT widgets always being light theme? Do you hate that Windows has vestigial components and protocols from the DOS era? Try Linux, the new (old) free and open-source operating system!
I Hate Terminology
I'd just like to interject for a moment. When I'm referring to Linux (which is technically just a kernel), I'm referring to all GNU/Linux-based distributions.
Some terminology is used throughout this guide, for which I'll provide a brief glossary:
Term | Definition |
---|---|
DE | Desktop Environment (the graphical user interface used by your operating system) |
repo | repository (generally in reference to a package repository, used to install software packages on a system) |
distro | distribution (generally in reference to a Linux distribution, a selection of software on top of the Linux kernel) |
proprietary | Programs that do not have the source code available to the public. |
open-source | The opposite of proprietary, the source code is available to the public. |
non-free | Refers to programs that are proprietary, not programs that are paid. Free as in freedom, not gratis. |
Hardware Compatibility
With Windows having a monopoly on the operating system market, consumer hardware is generally designed solely for use with Windows. However, thanks to the great work done by the Linux kernel contributors, Linux can actually run on a much wider range of hardware than Windows, such as seldom-used architectures like MIPS, PowerPC, and RISC-V; and hardware big, small, and drivable. You can even run linux on your Apple silicon Mac, your Xbox 360, your Chromebook, and your Amiga A1200.
Issues only begin to arise when using newer hardware that is proprietary and complex. Since many OEMs do not provide drivers for Linux, as it is used by a small percentage of the population, most drivers are community-made open source drivers.
If you are planning to run Linux on new hardware, I recommend using a distro that provides a recent version of the Linux kernel, as that increase the chances that it comes with firmware blobs for your new hardware.
GPU Compatibility
GPU drivers are a common pain point, as they aren't nearly as standardized as the CPU, and the drivers required are often large and complex. AMD thankfully provides open source drivers for their GPUs (AMDGPU).
However, Nvidia only provides a few open source kernel modules. These modules are missing features like the latest DLSS and frame generation, and have limited compatibility with Wayland. There are also reverse-engineered open-source Nvidia drivers called Nouveau, but using them often results in greatly decresed performance.
Intel's integrated graphics work flawlessly on Linux, and the drivers are baked into the kernel. Their GPUs work well too, but only on newer versions of the Linux kernel, as the hardware is fairly new.
Other Device Compatibility
In comparison to GPU drivers, drivers for other devices are fairly small and simple. Sometimes, however, drivers for some devices like your WiFi or audio chipsets may not come with the kernel provided by your distribution or work as expected.
If the issue is simply a missing driver, then updating to a newer kernel can increase the chances of a driver being available.
Sometimes the driver is included in a package that just isn't installed, so it may be useful to search your distro's repo for additional firmware packages. This is common with distros that do not do not include non-free programs by default, as some firmware is closed source.
Program Compatibility
Programs that do not have native Linux versions can be run through Wine, a compatibility layer that lets Windows programs run natively on Linux. Programs are not guaranteed to work, especially if they use Windows-specific features. A list of apps that are confirmed to work on Wine is available at the WineHQ AppDB.
Valve maintains a fork of Wine meant specifically for games called Proton, which is available with the steam client. You can enable it for all Steam games by navigating to Steam
> Settings
> Compatibility
> Run other titles with:
Proton Experimental
You can use Proton with non-steam games (or pirated games) by adding them to Steam by navigating to Games
> Add a Non-Steam Game to My Library
Similar to Wine, a database is available for games that are confirmed to work on Proton called ProtonDB
Apps for Windows often have alternatives that are available for Linux, of varying quality.
A good list of alternatives for Adobe apps can be found at this github repo.