Demystifying Debian Linux Distro — it’s development evolution, philosophy, and misperception of it as “expert-only”
Ubuntu OS was the first Linux distro I tried, mainly for it’s renowned “user-friendliness”. After a couple of months, I realized I wasn’t satisfied and began tailoring my Ubuntu Desktop to my needs. Eventually, it seemed like I was trying to “un-ubuntu” it. Since Ubuntu OS is based on Debian, I wondered, why not try Debian instead?
There’s a widespread perception that Debian is for “intermediate” users with quite of knowledge in system administration. This perception might be reinforced when one decides to visit the official Debian website, which, in contrast to Ubuntu’s cute web interface, looks like a highly technical documentation. However, this is merely an initial impression.
My adventures with Debian OS started with studying exactly its official documentation. I have switched to Debian 12 seamlessly and tailored it for my coding needs. As a teaser, I will share my current Debian setup:
and .
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.
①.① How high OS's stability can be achieved?
First, it involves ensuring compatibility among all components that contribute to the OS’s functionality, along with extensive and thorough testing for this compatibility. Such testing takes time — lots of time and effort. But what happens every day in the software world? New, updated versions of software and firmware are released constantly. Consider, for example, the NVIDIA display drivers release frequency:
NVIDIA developers release major or minor updates of their software roughly every three months. If Debian developers start to chase constantly updating drivers and race for the newest software packages, the stability of Debian OS will be not the same anymore. In the case of NVIDIA drivers, the drivers cannot be discussed in isolation because each version of them might introduce additional features and require more dependencies, which also need to be the latest versions, and sometimes these dependencies are as down as Linux kernel.
Constantly updating almost every component of Debian OS to have the latest version of everything, is not an option when you are aiming for stability. I’m not suggesting that this will definitely result in instability or break the entire OS, however, complete smooth integration of the newest version of software into an OS cannot be guaranteed in a very short time after it is released. For example, the functionality of graphics drivers can certainly be tested with small effort (i.e do I see broken graphics on my monitor: yes/no?), but a comprehensive test of how all the components of the drivers affect every other component of the system cannot be thoroughly conducted in a short time.
② 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, 12.x.
Debian releases are frequently referred to by names rather than numbers — like Buster, Bullseye, Bookworm, Sid — because each release has its own unique name. To keep track of these names, you might want to check out the list of
The ice cube represents a point release of the Debian OS (frozen state of OS at the moment of release). It contains various software, firmware, and other components, each with specific versions. Outside of the cube, you may find the same software and hardware components but with newer versions. However, these are not present packages that are included in the official Debian distribution package repository.
When a Debian version is released as “Stable,” it gets its own package repositories. For example, Debian 12 has its repositories which will not change except for security updates and critical fixes. Debian’s package management system apt (Advanced Package Tool) by default points to these repositories. Returning to the example of NVIDIA drivers, you might have read an announcement about a new NVIDIA driver release. However, when you try to install this version via the apt package manager that points to package repositories of Debian 12 stable release, you won't find it there. This is because, according to the scheme mentioned earlier, the latest version is outside the cube — frozen state of stable release.
I’ll briefly cover the Arch rolling development approach. When you install Arch, you’re essentially installing the latest version available at that time — think of it as a momentarily frozen state, possibly just for a day. Arch is heavily community-driven, ensuring that all packages are continuously updated to their latest versions. This approach makes Arch potentially less stable than Debian, but that doesn’t necessarily mean it is unstable. It simply maintains stability in a different manner.
③ 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 plan using a stable Debian 12 release as if it was rolling development, you will face various obstacles and inconveniences. This isn’t because Debian developers don’t want you to do so, but because you need to understand what you are doing in detail. Debian developers have taken care of rock solid stability and security of your system for you. If you are advanced user, you can surely custom your Debian OS for your needs. But you have to keep in mind that in these cases stability of your OS is your responsibility and it depends a lot on your actions.
③.① Debian Stable vs Debian unstable vs Debian Testing
However, I do not want to discourage you to use Debian at all, because there is, of course, the Debian community, and you’re not alone in wanting to go beyond Debian’s stable packages to install SOMETHING more up-to-date. You can always find web guides from someone who has done what you want, or you can ask questions. The crucial word is SOMETHING — if you want EVERYTHING to be the latest version, you need an OS that follows rolling development approach. Even here, Debian has you covered! You can stay with Debian (I mentioned Arch before as an alternative, but if you used before only Debian-based OS before, the difference in system administration is remarkable) and enjoy a rolling development with Debian Sid, also known as Debian Unstable. Moreover there is Debian Trixie — Debian testing release. Read this for more details:
Very(!) simplified diagram to visualize the interconnections between Debian releases
However, there is something more that Debian offers to its users, which falls exactly in a usage pattern when users want to update just some packages of Debian stable release — this approach is with using Debian Backports apt packages repository. I personally use this approach. Read this for more details:
Schematic Representation of packages installation via backporting.
For example, imagine you’re using Debian 12 Stable release, and you would like to install
How packages break (broken dependencies case) when one or more packages are installed from package repository different from the official repo of OS in use. Example on the diagram: potential outcome when installing a package onto Debian Stable from Debian Trixie repo.
Debian Backports provides a safer alternative. It allows you to install newer or unavailable packages on Debian Stable. Backport packages are taken from Debian Trixie (testing release) but rebuilt to work with Debian Stable, ensuring they depend on compatible versions from the Debian Stable repository.
However, even when using Debian Backports, you have to choose this option wisely. Returning to Debian “philosophy” and its distinctive stability, please read carefully:
FrankenDebian generated by GenAI
Remark on private package repositories and compiling packages from source. The main problem with FrankenDebian isn’t just about installing a package, which could potentially be malware. The bigger issue as illustrated above is that installing one package can bring in many dependencies and require different versions. When you build packages from source, it may also require additional components, not just for running the software but also for building it. 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.
③.② Debian 12 (Bookworm): 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 for you or something isn’t working, the answers can be found here. I too can make mistakes and may not always do things in the most correct way. However, following this guide —, this image comes with all the packages needed for a standard user setup and can be installed without an internet connection.
Live Install: Found , this minimal image contains just the minimal amount of software to install the base system and fetch the remaining packages over the Internet.
I’ll be using the network install for Debian because it allows me to install only the essential packages initially. At certain point of installation it scans my PC’s hardware and installs all necessary firmware.
A notable change of Debian 12 release is the addition of a package repository called “non-free firmware,” which contains non-open source firmware. For more details, see the .
NB!: Firmware and drivers are not the same things.
Firmware is embedded software that controls electronic devices and often operates at a low level, essential for device functionality.
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 )
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 12 it will also install Linux Kernel (the latest version of it that is present in Debian 12 stable packages repo!) and Linux Kernel is supposed to fetch drivers for hardware devices identified on your machine.
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. However, even if the points I raised have given you doubts about whether Debian is the right choice for you, you must definitely try it. It’s not uncommon for people to switch between various distros quite often to find one that suits 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!
SOCIAL SHARE CARD GENERATOR