Linux introductionBlur image

Introduction to Linux#

Linux can seem technical and confusing, but it’s simpler than you think. At its core, Linux is an operating system (OS) - the essential software that allows you to use devices like computers, tablets, and even some TVs and microwaves. While simpler devices have basic operating systems, personal computers have more complex ones.

Most people use Windows or macOS on their computers and Android or iOS on their phones. However, Linux is the go-to OS for servers, powering over 90% of them. Servers are computers that provide internet services, and they often run Linux because it’s efficient, standardized, and free.

Though Linux isn’t as common on personal computers, it forms the base of Android and is renowned for being open source and customizable.

What is Linux?#

Linux, technically, refers to the kernel, the core part of an OS that interacts with hardware. The full OS is called GNU/Linux. This name comes from the GNU project started by Richard Stallman in the 80s to create a free OS and Linus Torvalds, who developed the Linux kernel.

Linux is different from Windows and macOS in that it’s mostly free and open-source software (FOSS). This means the code is available for anyone to use, modify, and distribute.

Linux Distros#

One of the first concept you encounter when you want to install Linux is the “Linux distro”. The distribution or distro is a concept to group all parts of an Operating System as one disk image ready to be downloaded and facilitate the installation,it is associated with Linux and also with BSD family OS.

In this article, we will talk specifically about Linux distributions.

Linux distros, or “distributions,” consist of various software components bundled together to create a complete operating system. Here are the most typical parts:

  • Linux Kernel: The core of the OS.
  • System libraries and tools: Typically GNU tools and basic libraries.
  • Bootloader: Software that loads the OS, e.g., GRUB, systemd-boot.
  • File system: Manages how data is stored, e.g., EXT4.
  • Init system: Manages system initialization, e.g., systemd.
  • Drivers: Ensure hardware components function correctly.
  • Package Manager: Software that manages app installation, upgrades, and removal, e.g., pacman for Arch Linux, APT for Debian, etc.
  • Installer Framework (multiple options): Software used for installing the OS, via CLI (arch-install-scripts, debootstrap), TUI (archinstall) or GUI (Calamares installer, Ubiquity, Anaconda).
  • Desktop Environments (optional): Provide a Graphical User Interface for ease of use. Popular DEs are KDE, GNOME, XFCE, and Mate.
    • Window System: Manages the display, e.g. Xorg (X11) or Wayland.
    • Window Manager: Controls window behavior, e.g., floating (KDE Plasma) or tiling (i3 WM).
    • Login Manager: Manages user logins, e.g., LightDM, SDDM.
    • Menus and Launchers: Like dmenu and rofi.
    • Global Themes: Customize the look and feel, including taskbars and wallpapers.
    • GUI Apps: Include login manager, bar manager, launcher, file manager, terminal, web browser, text editor, etc.

When a distribution provides the core components such as the Linux kernel, a package management system, software repositories, and a set of default system libraries and tools, it is referred to as a Linux base distro.

Main Linux base distros#

While there are hundreds of Linux distributions, the majority are based on these ten foundational Linux base distros.

Linux distroMantainerRelease modelPackage managerSource repository
ArchLinux ↗CommunityRollingPacman (pkg.tar.zst + PKGBUILD)Arch pkgs ↗+AUR ↗
Debian ↗CommunityFixedAPT (deb)Debian pkgs ↗
Fedora ↗Red HatFixedDNF (rpm)Fedora pkgs ↗
OpenSUSE ↗SUSEMixedZypper (rpm)OpenSUSE pkgs ↗
NixOS ↗CommunityRollingNix (nar or .nar.xz)NixOS pkgs ↗
Gentoo ↗CommunityRollingPortage (tar.xz + ebuild)Gentoo pkgs ↗
Void ↗CommunityRollingXBPS (xbps.tar.xz)Void pkgs ↗
Slackware ↗CommunityLTSSlackpkg (tar)Slackware pkgs ↗
Solus ↗CommunityRollingeopkg (eopkg)Solus pkgs ↗
Alpine ↗CommunityRollingAPK (apk)Alpine pkgs ↗

What I Recommend#

First choose choose the Base Distro and then the Desktop Environment ↗ based on your preferences and needs.

This way you will not waste your time switching frequently from one distro to another, a concept known as distro-hopping, which many Linux streamers do these days to create content. If you want to explore other options, consider doing so on a virtual machine before making any changes.

Easy installation: Preconfigured Linux distros#

If you’re looking for a family-friendly Linux option, consider using a major distribution that comes with a preinstalled desktop environment (DE) like GNOME or KDE. These distributions are well-maintained, feature robust community support, and offer a user-friendly experience.

Distro baseDerivative distro
Arch-basedEndeavourOS ↗ Garuda Linux ↗ CachyOS ↗ Manjaro ↗
Debian-basedLinux Mint ↗ Ubuntu ↗ Kubuntu ↗ KDE neon ↗ Kali Linux ↗ Pop OS ↗ Proxmox ↗
Fedora-basedFedora Spins ↗ Nobara ↗

Advanced installation: Minimal distros#

These installations are for advanced users and can be time-consuming

For those interested in a deeper understanding of the installation process, consider these minimal Linux distros that require manual setup via the terminal. Unlike preconfigured distributions, they offer a bare-bones environment for users to build and customize according to their needs.

  • Alpine Linux: A lightweight, minimal, and secure distribution focused on simplicity and efficiency.
  • Arch Linux: Provides a minimal base system for users to configure and install packages and desktop environments.
  • Debian Netinstall: Offers a minimal Debian installation allowing users to choose software during setup.
  • Gentoo: Features a highly customizable base where users compile software from source.
  • Slackware: Known for its simplicity and minimalism, requiring manual configuration and software installation.

Developer installation: Build the distro#

For enthusiasts and those who enjoy a challenge, there’s the exciting option to build your own Linux distribution. You can create a customized Linux distro using various tools designed for building live ISOs, such as: archiso ↗, DebianLive ↗, Fedora LiveCD Tools ↗ Alternatively, if you’re up for a more hands-on and educational experience, you can build a Linux system from scratch by following the Linux From Scratch (LFS) documentation ↗. This approach involves assembling every component of your Linux system manually, giving you in-depth knowledge and control over the operating system you build.

Installing Software on Linux#

To set up your own Linux OS, you need:

  1. The system core (kernel)
  2. System launcher (like systemd)
  3. Drivers for hardware
  4. Desktop environment (like GNOME or KDE)
  5. Basic apps (file manager, browser, etc.)

Linux uses package managers to install software. Common ones include apt for Debian-based distros and pacman for Arch-based ones. You can install software via terminal commands, downloading packages, or using scripts.

Customizing Linux (Ricing)#

Linux is highly customizable. You can tweak the interface and functions extensively, a practice known as “ricing.” Communities like r/UnixPorn ↗ showcase these customizations.

Pros and Cons#

Advantages:

  • Open source and free
  • Secure against malware
  • Large supportive community

Disadvantages:

  • Some hardware and software compatibility issues
  • Fewer proprietary applications available

Learning Linux#

Using Linux, especially a distro like Arch, teaches you a lot about how computers work. It’s great for privacy, efficiency, and minimalism.

Conclusion#

Linux offers a secure, customizable, and free operating system with a strong community. It might take some time to adapt, but once you do, you’ll likely appreciate its flexibility and power.

Linux introduction
https://david7ce.github.io/en/post/linux-intro/
AuthorDavid7ce
Published atJune 18, 2022