Loading...

    How To Choose Your Linux Distributution

    By: Ismail M. BOUSSEKINE

    Reading time: 15 min


    Table of Contents


    GNU/Linux is an open-source and free operating system that was developed in the 90's by both Linus Torvalds and Richard Stallman, Which become called "Linux" as an abbreviation.


    Notes:

    • I tried to avoid any linux distribution forks like : PopOS!, Kubuntu, MX Linux ...etc, Because they are literally copy of their main distro with a DE and some predefined themes and wallpapers (not the case with Linux Mint and Ubuntu you'll see why).

    • This list is from my personal point of view and my experience with each one of this distributions.

    • This is a long article so bring your tea :)


    1. What is a Linux distribution

    A linux distribution is a set of pre-installed programs and settings on top of the kernel, To satisfy certain needs and requirements for the user or the server (as linux is widely used in running servers), Linux distributions tends to focus more on simplicity, ease of use, security, reliability and more, They all share the same Kernel (Linux) and GNU programs, But they differ when it comes to to the package manager (Apt, Pacman, Nix...), Init system (systemD, runit, OpenRC..), And the handling of the system config files.


    2. Best Linux Distributions

    1. Arch Linux

    Arch linux is the best linux distro I've tried, I'm running it now as my daily driver for almost a year and a half, It was first created in 2002 by Judd Vinet, It is an independent distro meaning it is not forked, What is good about Arch Linux is its minimal approach and simplicity, As it follows DYI (do it yourself) and K.I.S.S. philosophy (Keep It Simple Stupid), By minimal, We mean that it does not include any unnecessary software, Which makes it less bloated, With its rolling release model it provides the latest and greatest of softwares, So it does not follow a fixed-release cycle like Debian or any other distros.

    Arch linux uses Pacman package manger which is one of the best package managers if not the best, It contains a large number of built packages (binaries), And if you added the AUR (which is another Arch linux repository that is ran by community) the total packages become more than 80,000+ package. Here are some of its commands

    #to install a package
    pacman -S 
     
    #to delete a package with its config files
    pacman -Rns 
     
    #to search for a package
    pacman -Ss
     
    #to update the system
    pacman -Syu 

    Installation

    You can download and install Arch linux via the net installer provided in the official website.

    Pros:

    • Arch Wiki & AUR: Arch Linux have the best documentation for a linux distribution, "The Arch Wiki", Almost every problem you'll ever face in arch linux in particular or any linux distro in general you will find a solution for it, It also includes a great documentation of almost all linux tool and softwares, As for AUR You can have access to thousands of packages that you build your self (AUR offers source code for packages and their MAKE files and you build them yourself).

    • Full Control: With Arch linux you will have the full control of your system, you decide how your system will look like, How it will behave.

    • Minimal and Customizable: Arch linux comes with a very minimal amount of base programs that will get your system running and nothing more, But then you decide which softwares to install, What drivers to use, what desktop envorinemtns DE or window manager WM to install... which helps keeping the distro minimal.

    • Deep Understanding of Your System: Installing everything yourself will give you deep understanding of how your system works and how it is configured, If you want to get good at linux then Arch linux is your best choice.

    • You Do Everything Yourself

    Cons:

    • SystemD: SystemD is a software suite that provides a bunch of system components for Linux, meaning that you have one softwares which controls your whole system, Specially the init system. There is actually nothing wrong with systemD, in fact many distros use it, But, If Arch linux philosophy is to provide a minimal and fast system out of the box systemD does'nt help with that, However for new linux users that does not mean a lot.

    • Overwhelming Installing Process: Arch linux is by far the most overwhelming linux distro to install, Not saying it's hard, But you'll have to follow the manual and install it inside the TTY (the hollywood black screen), I remember it took me 48h to install it using broken usb that unmounts each time i touch it, and imagine :).

    • Updates : Updates in Arch Linux are shipped to the end user very quickly, Which sometimes may cause the system to break because of some stupid GRUB update, When eventually will make you pray every god out there while reading an article someone wrote in 2006 to fix the issue, For me i've never faced that, and I pray I never face it.

    • You Do Everything Yourself

    2. Void

    Void Linux, The most minimalistic rolling-release linux distribution, It uses runit as the init system which makes it fast, Specially at boot time, Even faster than Arch linux, It is an independent linux distro that was first created in 2008 Juan Romero Pardines, A former developer of NetBSD, Which explains why it feels so much like BSD. What makes this distro good and popular is the fact that is uses XBPS as a package manager which is very minimal and fast package manager that includes most of the packages that you need. Examples of using XBPS:

     #To install a package
    xbps-install
     #To update the system
    xbps-install --sync --update 
     #To remove a package
    xbps-remove
     #To search for a package
    xbps-query 

    As you can see XBPS uses a straight forward commands which are easy to remember.

    Installation

    To install Void linux you should visit their official website and download your preferred version (you may end up comparing between musl and glibc).

    Pros:

    • Minimal Linux Distro: If you have a computer or a laptop with low specs this would be your ideal distro to go with.
    • Uses Runit Instead of SystemD: Runit is one of fastest and minimalistic init systems out there, Comparing to systemD which is less faster and kind of bloated and goes against the unix philosophy
    • Fast And Reliable Package Manager: The main goal of designing XBPS package manager is to be fast, that provides already compiled packages (binaries) to speed up the install process.
    • Stable: Despite its rolling-release model, Void is stable thanks to its minimal design, Efficient XBPS package manager, And lightweight Runit init system, Ensuring smooth updates and reliable performance.

    Cons:

    • Bad Documentation: The documentation for Void Linux can be overwhelming and hard to navigate for new users.
    • Small Community: With a smaller user base, finding community support and resources can be challenging compared to more popular distributions. although they have pretty good IRC channel.
    • Overwhelming For New Users: The rolling-release model and minimalistic approach might be intimidating for new users who are not familiar with Linux systems, Even the installing process is similar to Arch linux they both use CLI to install the distribution.

    3. NixOS

    NixOS is a unique Linux distribution that stands out due to its innovative approach to package management and system configuration. It was first released in 2003 and introduces a declarative configuration model that sets it apart from traditional distributions check the thesis. NixOS uses the Nix package manager, which allows for atomic upgrades and rollbacks, ensuring system stability and flexibility, Which is known to be the biggest package manger with almost 100,000+ packages!. NixOS operates on the principle of immutability, where system configurations are defined in a single file, making it easy to reproduce and manage system setups.

    The package manager, Nix, provides precise control over software environments and dependencies, allowing users to create isolated environments for different projects. This approach prevents conflicts between packages and ensures that system upgrades do not break existing configurations.

    # To apply changes to your system configuration
    sudo nixos-rebuild switch
     
    # To roll back to a previous system configuration
    sudo nixos-rebuild switch --rollback
     
    # To install a package
    nix-env -iA nixos.<package-name>
     
    # To remove a package
    nix-env -e <package-name>
     
    # To search for a package
    nix-env -qaP <search-term>

    Installation

    You can download and install NixOS via the ISO provided on the official website.(Graphical install or CLI)

    Pros:

    • Declarative Configuration: NixOS uses a declarative configuration file (/etc/nixos/configuration.nix) that defines the entire system state, Making it easy to manage and reproduce setups.
    • Atomic Upgrades and Rollbacks: With Nix, You can safely upgrade your system and rollback if something goes wrong, Ensuring system stability and reliability.
    • Isolation and Customization: Nix allows you to create isolated environments for different projects, preventing package conflicts and ensuring that dependencies are managed separately, Which would be very helpful for developers.
    • Reproducibility: The declarative nature of NixOS makes it easy to recreate system environments, which is particularly useful for development and deployment.

    Cons:

    • Learning Curve: The NixOS configuration model and package management can be challenging to learn, especially for users unfamiliar with functional programming concepts (Special language called Nix).
    • Limited Software Availability: While NixOS supports a wide range of packages, the availability of some software may lag behind other distributions, Particularly those that are less common or have complex dependencies.
    • Complex Configuration: The flexibility and power of NixOS come with increased complexity in system configuration, which may be overwhelming for users who prefer more straightforward setups.
    • Community and Support: Although growing, the NixOS community is smaller compared to more established distributions, which may result in fewer resources and less community support, which will make you checking github for how people are configuring their systems.

    4. Debian

    Debian is one of the most popular linux distributions out there, Its been since 1993 which makes it one the first ever linux distros along with Slackware, It is known for its high stability and reliability due to its "Fixed Release" version cycle which means it only gets updated every period (usually more than 6 months), In this case Debian gets updated every two years, But there is version called (Debian Sid) that is a rolling release.

    Debian uses the package manager APT, Which is known to be fast, Versatile, And stable (other linux distros also use it as we will see.) some of the commands we mention:

    sudo apt update && sudo apt upgrade
     
    # To install a package
    sudo apt install <package-name>
     
    # To remove a package
    sudo apt remove <package-name>
     
    # To search for a package
    apt search <search-term>

    Installation

    Debian is available for download on the main website, you can choose between the GUI installer (with GNOME or KDE Plasma, Best for new users with no experience) or with net installer (lightweight).

    Pros:

    • Large Community: Debian by far has the largest community, So it will be easy to find solutions for problems you face.

    • Tremendous Stability: Debian is known for its high stability and security because of its fixed-release model.

    • Just Works: This is famous term in the linux community to describe a software that does its job and nothing more, Debian just works because it is ready out-of-the-box with all tools and programs you need (in case you installed via the graphical installer (GNOME or KDE)), So you really don't configure anything by your self.

    Cons:

    • Old packages: This is the biggest caveat of using debian, As we said Debian ships old packages to keep the system stable but that come at the cost of the packages being old, Meaning that by the end of your current version you'll probably end up using a 2 years-old package, That being said there is (Debian Sid) that ships with newer package versions, But in cost of system stability
    • For servers: Although Debian is famous, But Servers gets the biggest market share of Debian, Which is understandable because users don't like running very old packages on there daily driver system.

    5. Gentoo

    Gentoo is a versatile Linux distribution known for its performance optimization and customization capabilities. It was first released in 2002 and distinguishes itself with its source-based package management system. Gentoo uses the Portage package manager, Which allows users to compile software from source code with customized options and optimizations (flags), Making it possible to tailor the system to specific hardware and user needs.

    Gentoo's approach involves a high degree of control over system configuration and optimization. Users define build options and dependencies through USE flags, This granularity allows Gentoo to achieve exceptional performance and flexibility but requires more involvement from the user compared to binary-based distributions.

    # To update the system and sync the Portage tree
    sudo emerge --sync
    sudo emerge -avuDN @world
     
    # To install a package
    sudo emerge <package-name>
     
    # To remove a package
    sudo emerge -C <package-name>
     
    # To search for a package
    emerge -s <search-term>

    Installation

    You can download and install Gentoo via the ISO provided on the official website.

    Pros:

    • Performance and Optimization: Gentoo allows users to compile software with specific optimizations tailored to their hardware, resulting in potentially better performance and efficiency.
    • Customization: The USE flags and Portage system provide fine-grained control over package features and system configuration, enabling a highly personalized environment.
    • Learning Experience: The hands-on installation and configuration process offer a deep understanding of Linux internals, which can be valuable for advanced users and enthusiasts.

    Cons:

    • Complex Installation and Maintenance: The installation and maintenance processes can be time-consuming and complex, especially for users unfamiliar with compiling software from source.
    • Longer Build Times: Compiling software from source can be slow compared to binary installations, which may be a drawback for users with limited time or resources, specially with users who have low cpu cores.
    • Steep Learning Curve: The extensive customization options and manual configuration can be overwhelming for new users or those preferring simpler setups.
    • Smaller Precompiled Package Repository: While Gentoo offers extensive customization, the availability of precompiled binary packages is limited compared to other distributions with larger repositories.

    6. Fedora

    Fedora is a cutting-edge Linux distribution sponsored by Red Hat and known for its focus on integrating the latest technologies and innovations. First released in 2003, Fedora serves as a proving ground for new features and software that often make their way into Red Hat Enterprise Linux (RHEL). Fedora operates on a fixed release cycle, with new major versions released approximately every 6 months. It includes a wide range of software and is known for its strong support for GNOME, Though other desktop environments are also available. Fedora uses the DNF package manager, which is based on RPM (Red Hat Package Manager) and provides a robust set of tools for managing software packages.

    # To update the system
    sudo dnf update
     
    # To install a package
    sudo dnf install <package-name>
     
    # To remove a package
    sudo dnf remove <package-name>
     
    # To search for a package
    dnf search <search-term>

    Installation

    You can download and install Fedora via the ISO provided on the official website. Fedora offers various editions, including Workstation, Server, and IoT... etc.

    Pros:

    • Strong GNOME Support: Fedora provides excellent support for the GNOME desktop environment, including custom features and optimizations.
    • Free and Open-Source Software: Fedora adheres strictly to free and open-source principles, ensuring that all included software meets these criteria.
    • Regular Releases: With a predictable release cycle, users can expect regular updates and new features, keeping the system current with minimal manual intervention.
    • Good for developers: Fedora is a popular choice for developers due to its focus on cutting-edge technologies and development tools, making it suitable for software development and testing.

    Cons:

    • Shorter Support Cycle: Fedora's rapid release cycle means that each version has a relatively short support period, which might necessitate frequent upgrades.
    • Limited Proprietary Software: Fedora's commitment to free software can result in limited support for proprietary applications and codecs, which may require additional effort to install.
    • Frequent Upgrades: The fast-paced release cycle means users may need to upgrade their systems more often compared to distributions with longer support cycles.

    7. Linux Mint

    Linux Mint is a popular, user-friendly Linux distribution known for its ease of use and stability. First released in 2006, it is based on Ubuntu (or Debian, there are two versions) and inherits its robust features and extensive software repository. Linux Mint aims to provide a more accessible and polished desktop experience, Making it a popular choice for new users transitioning from other operating systems.

    Linux Mint offers several desktop environments, Including Cinnamon, MATE, and Xfce. The distribution is designed to be easy to install and maintain, with a focus on delivering a complete and functional desktop environment out of the box.

    sudo apt update && sudo apt upgrade
     
    # To install a package
    sudo apt install <package-name>
     
    # To remove a package
    sudo apt remove <package-name>
     
    # To search for a package
    apt search <search-term>

    Installation

    You can download and install Linux Mint via the ISO provided on the official website. The installation process is straightforward, with a graphical installer that guides users through the setup.

    Pros:

    • User-Friendly: Linux Mint is designed with ease of use in mind, featuring a familiar interface and intuitive tools that make it accessible for users of all experience levels.
    • Stable Base: Built on Ubuntu LTS (Long-Term Support) releases, Linux Mint benefits from the stability and extensive support of its parent distribution.
    • Pre-Installed Software: The distribution comes with a comprehensive set of pre-installed applications, including productivity tools, media players, and utilities, reducing the need for additional setup.

    Cons:

    • Less Cutting-Edge: Compared to rolling-release distributions or those with faster release cycles, Linux Mint may not include the latest software versions and features immediately.
    • Dependency on Ubuntu: As a derivative of Ubuntu, Linux Mint inherits any potential issues or limitations of its parent distribution, Which may affect the availability of certain packages or updates.

    3. What To Choose Depending On Your Use Case

    Choosing the right Linux distribution can depend heavily on your specific needs and use case. Here’s a guide to help you select the best distribution based on various scenarios:

    General Use and Ease of Use

    • Linux Mint: Ideal for users looking for a straightforward, user-friendly desktop experience with a polished interface and pre-installed software. It’s great for those new to Linux or those who prefer a stable, well-supported system with minimal configuration.
    • Fedora: Suitable for users who want access to cutting-edge technology and features while still enjoying a relatively stable environment. Fedora’s GNOME-based interface is modern and efficient, making it a good choice for developers and tech enthusiasts.

    Performance and Customization

    • Arch Linux: Perfect for users who prefer a minimalist setup and enjoy customizing their environment from the ground up. Its rolling release model ensures access to the latest software, and the extensive Arch Wiki provides valuable resources for advanced users.
    • Gentoo: Best for users who want complete control over their system and are willing to invest time in configuring and optimizing their setup. Gentoo’s source-based approach allows for fine-tuning performance and customization to meet specific needs.

    Stability and Reliability

    • Debian: A solid choice for users seeking a stable and reliable system with long-term support. Debian’s fixed-release model ensures consistent performance and security updates, making it suitable for servers and production environments.
    • Void Linux: A good choice for users seeking a stable, rolling-release distribution that focuses on simplicity and minimalism. Its lightweight nature and efficient package management system contribute to a reliable and responsive system.

    Development and Cutting-Edge Features

    • Arch Linux: Also great for developers who need the latest software and want the ability to customize their development environment extensively. Arch’s rolling release model ensures that you always have the most current tools and libraries.
    • Fedora: Excellent for developers and users who want to stay at the forefront of technology. Fedora integrates the latest software and features, making it suitable for development and testing new applications.

    Educational Purposes

    • Arch Linux: Useful for those who want to deeply understand Linux internals and system management. The installation and configuration process provides a comprehensive learning experience.
    • Gentoo: Ideal for those interested in learning about system optimization and compiling software from source. It offers valuable insights into how software and system components interact.

    4. Conclusion

    Choosing the right distribution will depend on your specific needs and how much effort you’re willing to invest in configuration and maintenance. Each distribution has its strengths and weaknesses, So consider what aspects are most important for your use case before making a decision.


    Did You Find This Article Usefull?