Switching to GNU/Linux

When a friend expressed frustration with their new [Windows] laptop, I casually suggested they might consider switching to Linux. Surprisingly, they retorted, ‘I’m not smart enough for Linux’—though they certainly are. This reaction made me ponder: Why does Linux often seem intimidating and reserved for the technically adept, when in reality, it’s quite user-friendly, often more so than Windows or Mac?

I’m mostly writing this guide for the day my friend decides to explore Linux—a prepared primer, if you will. However, I recognize that this curiosity isn’t unique to them. Many are intrigued by Linux but are overwhelmed at the outset. The sheer volume of online tutorials, videos, and the dizzying array of Linux distributions only add to this ‘paradox of choice.’

It’s often observed that individuals are more likely to embrace Linux after encountering it in their workplace. In such settings, the choice of distribution and configurations are predetermined, simplifying the initial setup. This allows users to focus on actually using the system, underlining a crucial point: despite the diversity of distributions, the core experience of Linux remains consistent across different versions.

Linux, fundamentally, is just an operating system like Windows or macOS. It’s built around the Linux kernel. Unlike Windows, where the kernel is part of a proprietary system, the Linux kernel is open source and can be customized.

Distro

If you’re considering making the switch to Linux, the first decision you’ll make is choosing a Linux distribution, commonly known as a “distro.” A Linux distribution is essentially a complete operating system built around the Linux kernel. The kernel, the core part of Linux, manages the communication between your hardware and software; however, on its own, it’s not enough to run your computer for average use. That’s where distros come in.

A distro includes the Linux kernel along with a collection of software applications, a package management system, and often a graphical user interface (GUI). It’s a ready-to-use operating system, packaged and maintained by organizations or communities.

  • Each distro offers a different user experience.
  • Distros come with a set of pre-installed software—similar to how it is with Windows.
  • Different distros use different package managers (tools for installing and updating software).

Distro Choices

Fedora

Linux Mint

  • Simple installation process: The installation process is straightforward and well-guided, a lot easier than installing and setting up Windows/Mac. It’s designed to be approachable even for users who have never installed an OS before.
  • Minimal Setup Required: Linux Mint comes with a full suite of essential software pre-installed, including a web browser, office suite, media players, and graphics tools. This means you can start working immediately after installation without the need to download additional basic software.
  • Familiarity for Windows Users: Linux Mint’s Cinnamon desktop environment offers a layout and functionality similar to Windows, making it easier for newcomers to adapt. The menu, taskbar, system tray, and window management are intuitive for those accustomed to the Windows ecosystem.

Arch Linux

While it’s often seen as a distribution suited for more experienced users, there are several compelling reasons why diving into Arch can be a rewarding decision, especially for those who find other distributions lackluster.

  • Rolling release model: You get the latest software and updates, continously.
  • The Arch Wiki: an incredibily comprehensive resource and knowledge base. It offers detailed information on every aspect of using, configuring, and troubleshooting Arch Linux, or just Linux environments in general.
Installation Process
  • Manual and Command-Line Based: Unlike many user-friendly distros, Arch Linux doesn’t have a graphical installer. The installation is done entirely through the command line, requiring you to partition disks, install the base system, configure the network, and set up a bootloader manually.
  • Beyond the installation you will be responsible for configuring and maintaining most aspects of your system; and you’ll often need to troubleshoot issues yourself.
  • Learning Opportunity: Arch Linux forces you to learn how the system works from the ground up; which is what Linux is all about. It made me fall in love with PCs again!

Desktop Environments

See post on DE.

Window Managers

See post on WMs.

Other

Shell vs. Terminal

Shell

  • Acts as a command interpreter. It processes user-entered commands and instructs the OS to perform specific tasks and execute other programs—a mediator between the user and the system’s kernel. Essentially a command language.
  • There are multiple shells, each with unique features and scrpting capabilities. Most common being the bash (as it’s the default), and the most popular being zsh.
  • It’s an invisible background process until you access it via a terminal or other means (like a shell script). It does not have a graphical interface of its own.

Terminal

  • Application that provides access to the shell—an interface where users type and execute [shell] commands.

Differences

  • The Shell is where commands are processed, while the Terminal is the interface through which users send commands to the Shell.
  • The Shell executes the commands, and the Terminal displays the output of these commands.

Package Manager & Repositories

A package manager in Linux is a tool that automates the process of installing, updating, and removing software packages. This software management is done through command-line tools or graphical interfaces.

Unlike Windows, where software is usually downloaded and installe from various, individual vendors’ websites or stores like Microsoft Store (App Store if MacOs), Linux centralizes software management. The package manager retrieve software from configured repositories. Repositories in Linux are server-based libraries of software packages (programs/applications). They are the sources from which package managers download and install software.

This approach is considerably safer than downloading executable files/software from [random] internet websites, as seen in Windows. This is due to the fact that packages are typically maintained by the distribution’s maintainers who ensure that software is free from malware and has been tested for compatibility with the distribution. This removes the need for any “anti-virus” (which itself is a scam) software on Linux.

Root & Sudo

Root: The ultimate user with complete control over the system; meaning it has unrestricked access to all commands and files.

Sudo: Short for “superuser do,” sudo is a command that allows a permitted user to execute a command as the root user or another user, as specified in the sudoers file. This provides a layer of security, as it avoids the need for logging in as root.