This article is reprinted with permission from the public account CSDN (ID: CSDNnews)
Author | Artem S. Tashkinov, Editor | Su Ma
The latest data from traffic monitoring agency StatCounter indicates that as of December 2024, Linux holds only 4.13% of the global desktop operating system market share. This is in stark contrast to its widespread use in the server market, making its performance on the desktop rather disappointing. So, what are the reasons behind this situation?
Recently, a loyal supporter of the open-source movement and open-source projects, Artem S. Tashkinov, published a lengthy article analyzing this issue, attempting to uncover the truth behind it.

Original link: https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.final.html
The following is the translation:
Many years ago, I wrote an article on this topic (https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html), which was overly technical, lengthy, and contained many controversial viewpoints. After much consideration, I decided to completely rewrite it to make it more accessible to non-technical readers and to reveal the deep-rooted core issues that make Linux still struggle to match modern desktop PCs.
The original article I wrote over a decade ago was quite popular, but now the traffic on this site is very low because PCs have been more or less phased out: most people in the world rely on smartphones for everything. PCs are primarily used by businesses, professionals, hardcore PC gamers, and PC enthusiasts.
Once again, I want to clarify, as I did in the old article: Linux can fully meet some of your needs, especially when those needs are primarily focused on using the computer as a web client. You can simply launch Firefox or Chrome (of course, provided you are lucky enough that the hardware video acceleration on your system works properly. However, even in 2024, hardware acceleration remains an issue, while Windows solved video encoding and decoding acceleration problems almost perfectly nearly twenty years ago).
It is important to emphasize that this article discusses Linux distributions, not specifically the Linux kernel. The Linux kernel alone is useless without applications running on it.
Linux is suitable for IT professionals. This article focuses on the user experience of ordinary users, those who are unwilling to touch the terminal or learn shell commands.
Next, let’s discuss the following core issues one by one. These issues are nearly impossible to resolve without someone investing over a billion dollars:
1. Linux is not an operating system
When people talk about operating systems, they usually think of a core operating system equipped with a large amount of software that can run on different versions of the operating system. For example, many software applications developed for Windows even 20 years ago (yes, 20 years!) still run perfectly on Windows 11 or its current versions. Android 15 (the latest version as of 2024) supports all Android software released since Android 7.0, ensuring over 8 years of compatibility.
In fact, you can even install and use older applications. On Windows, software compatibility is outstanding: many 32-bit Windows 95 applications still run perfectly on 64-bit Windows 11 nearly 30 years later. However, there is no such situation on Linux.
This is precisely the problem with Linux distributions. For Linux distributions, the preferred way to distribute software is to compile it separately for each version of the operating system. This method does not guarantee compatibility, and most of the time, software from previous versions simply cannot run on your current Linux distribution.
Worse still, software compiled for the current version of Linux X may not run on the current version of Linux Y. Linux distributions generally require all software to be compiled for their current version or provided in source code form.
However, the source code dilemma is that: ordinary users are unlikely to want to compile software themselves, and even if they are interested, they may not succeed because the software may depend on specific compilers or libraries that your distribution may not provide. Additionally, each distribution needs maintainers to support this software, and if no one is willing to take on the maintenance work, you simply cannot find the software you need in that distribution.
Of course, readers familiar with Linux may mention that Linux provides Flatpak, Snap, and AppImage. These technologies attempt to solve software compatibility issues, but I will not delve into their shortcomings (https://ludocode.com/blog/flatpak-is-not-the-future). In simple terms, they are essentially lightweight virtual machines. The core principle of these tools is not to truly solve compatibility issues but to circumvent them by allowing users to allocate and run a large amount of binary code, resulting in unnecessary consumption of storage space, CPU, and memory resources. Even more absurdly, you can easily run them in Windows’ WSL (Windows Subsystem for Linux). So, why install Linux on your computer in the first place?
Moreover, these tools have another major issue: software must be packaged by someone in the form of a lightweight virtual machine. Only the most popular software will receive such treatment, so obscure applications that you may have used in the past may never be available. In stark contrast, on 64-bit Windows 11, most software released over the past 30 years runs almost perfectly. I am not discussing games here (many games are indeed incompatible), but this is not due to poor Win32 compatibility; rather, it is because game developers at the time did not prepare for the future.
In other words, each Linux distribution is an independent operating system. As for which one ordinary users should choose? No one can provide a clear answer, and the debate over which distribution is “better” or “more suitable” is endless.
Some may argue, “These problems do not exist at all!” Then, you should have heard of the name Linus Torvalds, right? He said almost the same thing to me in 2014 (https://youtu.be/5PmHRSeA2c8)! However, has anything changed since then? Absolutely not.
The only real compatibility between Linux distributions lies in their use of the same Linux system calls (this part is somewhat technical). In theory, this means that statically linked applications should work across all distributions. However, this is often not the case in reality. For example, many Linux users have recently migrated to Wayland, and some have even completely removed XWayland. As a result, statically linked X11 applications can no longer serve these users. Similarly, as Linux evolves, many technologies have been phased out.
For instance, applications based on ESound or OSS can no longer be used today because modern Linux distributions no longer include ESound or OSS, whether in emulation or compatibility layers. Likewise, devfs, libc5, and a.out binaries from older systems have long been phased out, with no modern alternatives or backward compatibility support.
2. QA/QC, Bugs, and Regression Issues
You do not need to understand all the above terms, but the core issue is: Linux is always in a state of continuous change.
Regression (reproducing issues) occurs frequently because Linux developers rarely, if ever, take the time to check whether their code changes introduce regressions or break previously functioning features. They usually only focus on fixing the problems they are trying to solve or implementing new features.
Moreover, Linux kernel developers often do not have access to all the hardware devices they are supporting. Therefore, a change for one device may affect another device that another developer has failed to test. For example, in the AMD GPU bug tracker, you will see statements from AMD developers like, “Sorry, we don’t have that hardware; can you help test this patch?”
This issue affects multiple Linux components, from the Linux kernel to MESA (the interface between graphics cards and operating systems), and even desktop environments.
3. Lack of Software and Games
The vast majority of applications are developed only for Windows. As for games, Linux has had almost no native AAA titles for years, primarily due to its small user base. Even CS2 (Counter-Strike 2), while having a Linux version with Vulkan, performs far worse than the native Windows version. Furthermore, despite CS2 having millions of players, it is hard to consider it a AAA title because it is based on Direct3D 11, which is over ten years old, lacking modern lighting and shadow technologies like ray tracing.
Indeed, many Windows games can run through Wine + DXVK (Win32 API emulation on Linux), but if that’s the case, wouldn’t it be better to just use Windows directly?
Additionally, many games will never run, especially those with millions of players in online multiplayer, because they require kernel-level anti-cheat systems. A typical Linux user might say, “I don’t play those games, and you don’t need to! Go buy a Sony PlayStation!”
But for Windows users, almost all Linux applications can run easily.
Worse still, Linux lacks some very basic applications, not even having tools to check whether the system performance is normal.
4. File and Folder Sharing Issues on Local Networks
Linux lacks native technologies for file sharing similar to Windows, which are easy to configure and support auto-discovery, encryption, and password protection. Currently, the Samba technology used by Linux is very cumbersome when setting up shared folders, especially in distributions using SE Linux (an advanced security mechanism). Users need to create accounts, assign and change passwords, and also deal with folder permission issues.
Some geeks claim that SSHFS and NFS are good alternatives, but these tools are very unfriendly, limited in functionality, and require a lot of effort to set up and reading lengthy manuals. Certain features, such as fine-grained control of users/groups, are nearly impossible to achieve.
Even with Samba, if fine-grained permission control for multiple users and groups is needed, the configuration process is very complex. Not to mention using a graphical interface; almost everything has to be done through the command line.
5. Lack of Funding
Many software applications on Linux have numerous bugs and missing features. This is because Linux is severely underfunded in the desktop space. While Linux has been unrivaled in the server space, becoming the most popular operating system globally for over twenty years, the situation in the desktop space is quite bleak.
Linux runs well on servers primarily because the vast majority of funding has flowed into the server space. But desktop users have to deal with display issues and audio input/output problems.
Bugs affecting server providers (like Google, Facebook, and Netflix) are usually fixed immediately and prioritized very highly. However, bugs affecting the Linux audio/video subsystem can persist for years. For example, there may be no more than two active maintainers for the Linux audio subsystem.
6. Hardware Support and Compatibility
For brand new hardware, you may find that the Wi-Fi card, camera, audio, or even keyboard on your laptop does not work properly. This is because there is a stable driver API (Application Programming Interface) and ABI (Application Binary Interface) in Windows, allowing OEM manufacturers to release drivers from the start and ensure they work properly. In Linux, hardware support depends on the kernel version you are running. Sometimes it can take months or even years for Linux to support your hardware.
Secondly, the number of developers working on Linux drivers for OEM manufacturers is usually 10 to 100 times fewer than for Windows. This means that certain bugs may persist for months, years, or even never be fixed because developers have higher priority tasks.
The third issue is that the number of Linux programmers is insufficient to ensure that changes to the codebase are completely bug-free.
Finally, because Linux drivers are usually part of the kernel (with a few exceptions like NVIDIA), you cannot freely upgrade to the latest version or downgrade to a previously working version. You must switch to another kernel version, which is both cumbersome and not always feasible.
7. Accidental Linux Security
The security of Linux on the desktop is almost “accidental” or “purely by luck.” The situation is slightly better on servers, but it still requires management by highly skilled professionals. Here are some typical issues:
1. Most Linux users use the sudo command (granting full access to the system) indiscriminately, without understanding its necessity and purpose.
2. Linux lacks comprehensive native antivirus software and cannot scan for malware through sandboxing or emulation.
3. Many users download and run software from the internet without verifying its safety.
4. Most Linux users will directly run commands from the internet without ensuring the functionality and safety of those commands.
5. Internally, Linux’s security mechanisms are very complex, or in AI terms, “Linux does not always provide a user-friendly interface to handle permission issues in real-time.”
6. When you need to correctly share resources between user groups, good luck trying to set up directory and file permissions.
7. Many Linux users disable Secure Boot for the following reasons:
– Third-party software requires Linux kernel drivers, and the complexity of using these software is extremely high.
– Unable to write to MSR CPU registers.
I handed the above content to an AI tool for a response, and the AI’s answer was: “These issues are partially true, and the responsibility mainly lies with inexperienced users who need to use their software repositories.” Well, let’s take a look:
-
Your distribution often does not have all the software you need. Sometimes the version of the software you need is also unavailable; what should you do? Hundreds of pieces of malware have already appeared in multiple NPM, Python, and Ruby repositories.
-
In Windows, you have User Account Control (UAC). In Linux, you must have a deep understanding of how the system works to avoid accidentally running “malicious” commands with sudo. This significantly raises the barrier to using Linux, making it very unfriendly for non-technical users.
-
Linux distributions that support Secure Boot typically refuse to sign third-party drivers with their own certificates. Users have two choices: either install their own MOK certificate (a complex and error-prone process) or disable Secure Boot directly in the BIOS. Is this a problem with Linux? Sometimes it is. And the restriction on access to MSR registers when Secure Boot is enabled? That makes even less sense, as these features can still be used in Windows.
“Ultimately, these issues are real but not insurmountable. They reflect the room for improvement in Linux regarding usability and compatibility, while also highlighting the importance of user education.”
However, I find it strange that Windows, iOS, macOS, or Android do not seem to require much “education.” Perhaps it is simply because there is a flaw in the design of certain things?
8. The Linux Community
It is certain that you will encounter problems while using Linux. And when you try to seek help, you will experience the “true face” of the Linux community. Based on my observations over the past 25 years on the internet, the Linux community can sometimes be particularly challenging, even unpleasant.
Here are the most likely “answers” you will receive when you ask questions:
-
You are using the wrong Linux distribution..
-
You are using the wrong Linux kernel version..
-
Your hardware is not suitable..
-
You are using Linux incorrectly..
-
Your demands are too high, or you don’t need it (like wanting to play Windows online games with kernel-level anti-cheat).
-
Debug or fix it yourself, “You are using it for free, what do you expect?”“
9. Conclusion
You might say, “Linux is absolutely suitable for me, it works perfectly fine for me.” Of course, this is also true for many individuals. However, everyone’s needs may differ. For example, some may want to run old software on Linux.
And do you consider yourself a geek? Most likely, yes. But what about those ordinary users? They may not want to touch the terminal or delve into the complexities of Linux. They just want to install and run without having to think too much.
So, how can we solve these problems? Earlier articles have discussed this issue in detail: https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html#Solving_Linux.
If you need a more technical interpretation, you can refer to the following article: “The Main Issues of Linux on the Desktop in 2023” (https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html).
Author: Artem S. Tashkinov is a loyal supporter of the open-source movement and open-source projects. He has participated in bug fixes for several open-source projects (such as the Linux kernel, KDE, Wine, GCC, Midnight Commander, and X.org). He has been using dedicated Linux distributions since 1999.
This article is reprinted from the public account “CSDN”, ID: CSDNnews