Demystifying Debian Linux Distro: it’s development evolution, philosophy, and misperception of it as "expert-only"
Ubuntu was the first Linux distro I tried, mainly because of its reputation for being user-friendly. After a couple of months, I realized I wasn’t fully satisfied and started customizing it heavily. At some point, it felt like I was trying to completely "un-Ubuntu" my system.
Since Ubuntu is based on Debian, I thought: why not just use Debian directly?
There’s a common perception that Debian is only for intermediate or advanced users with solid system administration knowledge. This impression is reinforced when you visit the official Debian documentation—it looks far more technical compared to Ubuntu’s polished UI. But that’s just a first impression.
My journey with Debian started exactly from that documentation. I switched to Debian 13 smoothly and customized it for my development workflow. As a teaser, here’s my current setup:
The goal of this series is to guide you step by step through installing and customizing Debian into something like what you see above.
I’ll act as a "proxy" for Debian’s official documentation - avoiding unexplained shortcuts and focusing on how things work behind the scene.
Part 1: Before Installation.
Covers Debian philosophy, release models, packaging, and how to decide if Debian is right for you.
Part 2: Installation.
Detailed walkthrough of the installation process of Debian 13 with focus on partitioning, filesystems, and setting up of Logical Volume Manager (LVM).
Part 3: Debian security mechanisms and how to administer system in a secure way
Part 3A: Protecting your Debian against malware
Part 3B: Securing Debian against Network-Based attacks
Part 4: From Console only to Custom Graphical User Interface
The UI customization process is also known as ricing.
Part 4A: From Console only to Custom Graphical User Interface
The part focuses on the installation and configuration of such fundamental UI components as Display Server, Windows Manager, Status Bars, Notifications Daemon and Terminal Emulator.
♡ Part 4B: Giving Voice to your Debian OS
This parts' focus is on configuring Wireless Audio Devices configuration (Sound server).
This series of articles dedicated to Debian OS is written in my long-read style, thought for users who want a deep dive into the subject. It’s targeted at those who wish to understand how the operating system interacts with hardware and the Linux kernel, gain a better understanding of the software you use every day, and learn about how to administer your system preserving its stability and security.
1. Debian OS = "rock solid" stability and security. How is it achieved?
To start understanding and viewing the Debian Distro differently, I recommend starting with these reads: Reasons to use Debian and Debian Social Contract. Key takeaways:
Stability is a synonym of Debian. Security is one of the most important Debian features.
We will be guided by the needs of our users and the free software community.
The Debian Project is a Community.
To avoid confusion with the different names of Debian releases:
Debian releases are frequently referred to by names rather than numbers, like Bullseye (Debian 11), Bookworm (Debian 12), Trixie (Debian 13, current stable version), Forky (current testing version), because each release has its own unique name. To keep track of these names, you might want to check out the list of Debian Releases.
Debian is renowned for being rock solid: stable and secure. I doubt anyone would not choose stability for their OS. However, you must truly understand how this high level of stability is achieved and at which cost.
1.1 How high OS's stability level can be achieved?
First, it comes down to ensuring compatibility between all components that make up the system, combined with extensive and thorough testing of that compatibility. This process takes time - a lot of time.
But what happens in the software world every day?
New versions of software and firmware are released constantly. Consider, for example, the release frequency of NVIDIA display drivers:
NVIDIA releases major or minor updates roughly every few months. If Debian developers were to constantly chase these updates and always ship the newest versions, Debian would no longer provide the same level of stability.
Drivers - like NVIDIA’s - cannot be considered in isolation. In Linux, they are typically kernel modules. A new driver version may:
- introduce new features
- require a newer kernel interface
- depend on updated other software components
This creates a chain of dependencies, where updating one component often implies updating many others.
Constantly updating nearly every part of the OS to the latest version is therefore not compatible with the goal of stability.
This does not mean that newer software is inherently unstable. The issue is different: reliable integration into the system of new software versions takes time.
For example, verifying that a graphics driver "works" can be done quickly - e.g. wow I see something on my monitor. But verifying how that driver interacts with the kernel, system libraries, desktop environment, and other components under different workloads—that is a much deeper and longer process - e.g why I see SOMETIMES glitches when I connect third monitor.
Debian chooses to take that time.
2. Two approaches to release practices of Linux operating systems: Rolling development vs Point release.
You may have noticed that Ubuntu OS versions include labels like 20.x, 22.x, 23.x; Windows OS has versions like 8, 10, 11; and Debian versions include 11.x (Bullseye), 12.x (Bookworm), 13.x (Trixie).
Then there’s Arch Linux, which simply goes by Arch - there are no versions like Arch 1, 2, 5, 10, etc.
Debian follows a point release practice, while Arch adopts a rolling development model.
Let’s start with the point release approach.
Debian 12 was released in June 2023, and Debian 13 in 2025. What happened between these releases? A lot of testing. New software versions, features, and changes are gradually introduced, tested together, and stabilized. Only when the system as a whole reaches a high level of reliability is a new Stable release published.
This is why a Debian release is often described as a "frozen" state of the system at a specific point in time. A simplified way to visualize this:
Once a Debian version becomes Stable, it gets its own dedicated package repositories. These repositories are intentionally conservative: they do not change except for:
- security updates
- bug fixes
Debian’s package management system apt (Advanced Package Tool) by default points to these repositories.
Returning to the NVIDIA example: you may see announcements about new driver releases, but if you try to install them apt package manager on Debian Stable, they will not be available. This is not a limitation - it is a deliberate design choice. The newer versions exist, but they are outside the frozen "cube" of the stable release.
I’ll briefly cover the rolling release approach.
When you install Arch Linux, you are essentially installing the latest available state of the system at that moment. Unlike Debian, this state is not frozen (think of it as a momentarily frozen state, possibly just for a day). Packages are continuously updated, often very quickly after upstream releases.
Arch is strongly community-driven and aims to keep software as close as possible to upstream versions. This means you are always near the cutting edge.
This approach can be perceived as less stable than Debian, but that does not necessarily mean it is unstable. It simply follows a different philosophy: stability is maintained through continuous updates rather than long-term freezing and testing - e.g something got broken badly with last update - quickly ship new update with fix.
3. Decide what you intend to do with your PC to choose the most suitable Debian Release (or even different Linux distro) for you.
If you expect from Debian 13 Stable the latest version of every software or driver - as if it were a rolling release - you will be disappointed.
This isn’t because Debian developers don’t want you to have newer software. Quite the opposite - they have already taken care of something else for you: rock solid stability and security.
If you are an advanced user, you can absolutely customize Debian to your needs. But you must keep in mind that in such cases, the stability of your system becomes your responsibility, and it depends heavily on your decisions.
3.1 Debian Stable vs Debian unstable vs Debian Testing
That said, I don’t want to discourage you from using Debian. You are not alone in wanting to go beyond the default Stable packages and install something more up-to-date.
The key word here is SOMETHING.
If you want EVERYTHING to always be the latest version, then you are looking for a rolling release model. But even here, Debian gives you options. You can stay within the Debian ecosystem and choose between:
- Stable
- Testing (currently Forky) <-- I am here
- Unstable (Sid)
If you’ve only used Debian-based distributions before, switching to something like Arch is a much bigger shift in terms of system administration. Debian offers a more gradual path.
Read this for more details: Choosing a Debian distribution. Key takeaways:
Stable is rock solid. It does not break and has full security support. But it not might have support for the latest hardware.
Testing has more up-to-date software than Stable, and it breaks less often than Unstable. But when it breaks, it might take a long time for things to get rectified. Sometimes this could be days and it could be months at times. It also does not have permanent security support.
Unstable has the latest software and changes a lot. Consequently, it can break at any point. However, fixes get rectified in many occasions in a couple of days and it always has the latest releases of software packaged for Debian.
Users of the Unstable release (codename Sid) are always on the cutting edge, using the latest software versions developed for Debian. When a new software version is released for Debian, Sid users begin using it. If they encounter bugs, they report them. If no bugs are reported within five days, the software version is moved to the Forky testing release. There, it undergoes extensive testing. After the testing phase, and assuming all goes well, the newer software version eventually makes its way to Debian Stable — though this can take a while. Simplified scheme:
Users of Debian Unstable (codename Sid) are always using the latest software versions developed for Debian. New package versions enter Sid first. Sid users begin using it. If they encounter bugs, they report them. After a minimum delay (typically around a few days), and only if there are no critical bugs and dependencies are satisfied, packages migrate to Testing (currently Forky). There, they undergo further integration and stabilization before eventually becoming part of the next Stable release.
Simplified scheme:
Backports: a middle ground
There is another option that fits perfectly when you want some newer software without leaving Stable: Debian Backports.
Read this for more details: Debian Backports.
Backports are packages taken from the next Debian release (called _testing) and unstable (in a few cases only, e.g. security updates), adjusted and recompiled for usage on Debian stable.
Backports cannot be tested as extensively as Debian stable, and backports are provided on an as-is basis, with risk of incompatibilities with other components in Debian stable. Use with care!_
Key moment is that packages in Debian Backports repository are adjusted and recompiled for Debian Stable - they will run without new libraries (wherever it is possible) on a stable Debian Distro.
The key point is that backported packages are rebuilt to work with Debian Stable, meaning they avoid pulling in incompatible dependencies whenever possible.
Why mixing repositories is dangerous (FrankenDebian)
Suppose you are using Debian 13 Stable and want a newer version of PipeWire software (PipeWire is a server and API for handling multimedia on Linux). Debian Stable might provide an older version, while Testing or Sid has a newer one.
You could install the newer version directly from Testing/Sid repositories—but this is strongly discouraged. Why?
Because it will likely pull in newer dependencies that are not compatible with your Stable system. This can trigger a chain reaction of dependency upgrades, leading to what is commonly called FrankenDebian
Debian Backports provides a safer alternative. It allows you to install newer packages on Debian Stable. Backport packages are taken from Debian Testing release) but rebuilt to work with Debian Stable, ensuring they depend on compatible versions from the Debian Stable repository.
About FrankenDebian...
However, even when using Debian Backports, you have to choose this option wisely. Returning to Debian philosophy and its distinctive stability, please read carefully: DontBreakDebian — Debian Wiki. Key takeaways:
Don’t make a FrankenDebian!
Debian Stable should not be combined with other releases carelessly. If you’re trying to install software that isn’t available in the current Debian Stable release, it’s not a good idea to add repositories for other Debian releases.
This advice is critical if stability truly matters - for example, on servers running important workloads.
In my case, I use Debian Testing on my personal machine, so I accept some level of risk in exchange for newer software.
Note on third-party repositories and building from source
The problem with FrankenDebian is not just about installing a potentially unsafe package. The real issue is dependency chains.
Installing one package may require multiple additional packages, each with specific version requirements. Over time, this can:
- introduce conflicts
- pull in unnecessary components
- leave your system harder to maintain
The same applies when compiling software from source - you may need additional build dependencies that are not part of your base system.
Adding private repositories to your package sources can, over time, result in your system being filled with bloatware or unnecessary software after updates and upgrades.
3.2 Debian 13 (Trixie): which installation image to use and where to get firmware and drivers.
I will be installing Debian using an installation image (.iso file). If something differs on your side or doesn’t work, the answers can usually be found in the official documentation. I can also make mistakes and may not always follow the most correct approach. However, following this guide —Debian bookworm — Installation Guide— is the most accurate method.
There are 3 main options when choosing an installation image:
Standard Install: Available here.
This image includes most packages needed for a typical setup and can be installed without an internet connection.Live Install: Found here.
These images allow to test Debian by booting from a USB without installing it. They come with different desktop environments (GNOME, KDE, XFCE, Cinnamon, etc.). If you’ve used Ubuntu, you’ve likely used GNOME. Each DE has its own characteristics, so some research is useful. If you go with the netinst option below, you can also install multiple DEs later.Network Install or netinst: Located here
This is a minimal image that installs only the base system and downloads the rest during installation.
I will be using the network install, because it allows me to start from a minimal system and install only what I actually need.
During installation, Debian detects your hardware and loads the required firmware where possible. Debian 13 Installer does not have any issues if you use WiFi during installation process, it will prompt you to connect to your WiFi.
On Firmware & Drivers (important change since Debian 12)
Since Debian 12 release 2 package repositories were added: "non-free" and "non-free-firmware", which contain non-open source firmware. For more details, see the Firmware — Debian Wiki. Key takeaway:
The Debian project took the decision in October 2022 to create a new repository component non-free-firmware, and include its content on installation media for the upcoming Debian 12 release (bookworm) to make things easier for our users.
So, starting from Debian 12 all installation images fetch the firmware not only from Debian stable package repo but also from repo non-free firmware. Please consult Debian Information on Hardware Compatibility.
Most firmware is not open source, which is why it lives in the non-free-firmware repository.
Important: "non-free" does not mean paid — it refers to licensing, not cost to you.
NB!: Firmware and drivers are not the same things.
Firmware:
- runs on the device itself
- controls low-level hardware behavior
- often proprietary (non-free)
Drivers:
- are part of the operating system (mostly the Linux kernel)
- allow the OS to communicate with hardware
A few firmware images are Free Software and Open Source but unfortunately almost all of them are non-free — that’s why they are located in the package repo non-free-firmware and are not added to Debian stable package repo (the word non-free does not mean that you will have to pay in some way for using installed non-free firmware).
Drivers mostly is not a "responsibility" of OS, but of Linux Kernel:
In the Linux world, the overwhelming majority of drivers is open source and often integrated to the Linux kernel source code once they are of good enough quality, so as long as your kernel version is recent enough, you’re probably good. If your kernel is older than your hardware model, you can expect problems. (Source)
Drivers in Linux in most cases are not written for a certain "product" or "brand" from a specific manufacturer, but for a certain hardware/chipset. Many seemingly different products/brands are based on the same hardware design; it is not uncommon that chip manufacturers provide so-called "reference designs" for products based on their chips which are then used by several different device manufacturers and sold under lots of different product or brand names.
When you install Debian:
- the Linux kernel is installed first
- the kernel already includes a large set of drivers
- firmware is loaded (if needed) from available repositories
NB! Hardware device → Device’s proprietary Firmware → Linux Kernel Driver for this device.
This part turned out to be longer than planned, but I hope it helped you better understand the Debian Distro. Even if some of these concepts make Debian seem strict or limiting, it’s still worth trying. Many users go through several distributions before finding the one that fits them best. This is known as distro hopping, and you can check out a community dedicated to this, for example, on Reddit.
See you in the next part of this series where I will proceed with installation steps!










Top comments (0)