By now, I’ve had years of experience on different operating systems. It’s quite common for me to use multiple operating systems in one day. Of all of them, though, there’s only one that doesn’t feel like it’s holding my hand or keeping parts of the system locked behind the counter. That’s a deliberate design choice that addresses certain use cases, which may feel reassuring to some. But that’s not my style.
Linux (come on, you knew it’d be Linux) takes a different approach: no locks, no guardrails, no limits. That’s what makes Linux a real operating system, something its competitors, dwarfing it in desktop user share, will never be. Bold words, to be sure, but I have the receipts to back it up.
Not One Kernel of Truth…But Multiple
Of the major desktop OSes, Linux is the only one that lets you completely switch kernels. The kernel is the essential software that ships with every operating system and mediates between the OS and the device hardware. Because of its prime placement, the kernel also enforces the most fundamental security controls in any system.
Of course, because kernel support is required to use hardware, and no OS developer can support every peripheral, desktop systems cannot be completely inflexible with their kernels. Windows permits users to manage driver installation. As is typical for Apple, macOS is less permissive, especially as Apple is now discouraging the use of kernel extensions in favor of “system extensions,” which run outside the kernel. Linux systems allow you to install any kernel you want, making Linux the most adaptable of the three desktops.
You might think that, given how integral kernels are to an operating system, it would be challenging to reconfigure them. While you should certainly be careful, it’s not difficult. Many desktop Linux distributions give you a graphical tool for browsing, installing, and switching kernels. Just select what you want, reboot your computer, and you’re on your way.
So why would you even want to do this?
Different kernels prioritize different attributes. Some kernels support specialized hardware. Others simply aim to save space by omitting many default modules that most users don’t need — and still others add hardened security controls, such as SELinux-enabled configurations, to make system manipulation more difficult for attackers. Why wouldn’t this be the case? Personal desktop users, software developers, and information security professionals all have different needs, so why would they all use the same kernel?
Ditch the Uniform, Show Off Your Style
Have you ever noticed how most macOS desktops have only modest differences? With possibly the exception of gamers, one might observe this among Windows users, too. When it comes to icon style, status bar placement, and even wallpaper, there just isn’t much variation within macOS and Windows user populations, respectively. This is partly by choice, partly by OS constraints.
By contrast, with distros being legion, each embracing its own desktop environment with its own visual tweaks, conformity isn’t even possible for Linux users.

Just considering any single distribution, because it’s Linux, you’re free to change literally anything about its form and function. It’s not called “free” software just for its price tag. The icons, cursor, status bar, tray widgets, and app launchers are all a breeze to swap out.
As just one example, I wrote a custom script that sends a notification every 20 minutes to take a break from the screen. You can go really deep and pick the exact graphical libraries to use, or redefine how windows are drawn on the screen by replacing your compositor. To me, the Linux desktop is the perfect canvas for expressing my unique computing style, and I love that.
Hardware With a Soft Touch
In Linux, sudo is the only thing stopping you from accessing every hardware component directly from the command line. Everything is a file for truly Unix-like systems. Thus, Linux represents hardware — and the data going to and from it — as files. Anything that can operate on regular files can operate on hardware “files.”
That’s very abstract, so here are some examples of what that entails:
- Want to write a program that changes your screen brightness? Just change a number in a file.
- Want to capture raw keyboard entry? Simply read its character device file.
- Need random numbers from system entropy? Tap right into the unlimited supply in
/dev/urandom.
The trick is knowing where these files are and how to handle them. But your system has plenty of tools for any case you’ll find yourself in.
Desktop or Server? Why Be Forced to Choose?
I would argue that no other OS works equally well as a desktop and as a server. There might not be many cases where you’d want to do that, but the advantage is that you don’t have to learn a whole new operating system to go between the two. Think about how convenient it is to take all of your system diagnostic skills from your desktop and apply them on your server, or vice versa.
It also goes to show that Linux truly delivers on the concept of a general-purpose computer. Windows and macOS are classified as such, too, but how easy is it to turn them into web servers, file servers, VPN endpoints, or DNS servers? Not very. Meanwhile, you could probably get an AI to spit out a script to set up a web server on your Linux box in the time it takes to finish reading this article.
Nothing to Hide
While not as exciting as the aforementioned attributes, this one is the most practical: everything in a Linux system is fully documented. Of course, command-line utilities for all major desktops have “man page”-like help interfaces. But in Linux’s case, so do low-level system processes like systemd, the all-in-one system initializer and background software manager, constituting the beating heart of the most common Linux distros.
Linux’s thorough documentation is really in service of its customizability, which, I would contend, is merely a manifestation of its explicit “portability” objective, which one can interpret as “versatility.” It also partly owes to Linux being open source. If you’re allowed to download, alter, and install the software however you want, it should provide basic guidance on how to do so.

Even so, there’s no reason Linux’s proprietary competitors can’t have just as much documentation. There is a way to write technical guidance on what software can do without disclosing how it does so.
So why don’t proprietary OSes do this?
There are doubtless multiple reasons. To me, the most likely explanation is that, for some features, the concern is that divulging too much about what it does would reveal too much about how it works. Especially as Apple and Microsoft scramble to stuff AI into every product offering, they just might prefer to remind you about the constant data collection as little as possible.