According to the latest data from traffic monitoring agency StatCounter, 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 desktops rather disappointing. So, what are the reasons behind this situation? Recently, open source movement and project supporter Artem S. Tashkinov published a lengthy article analyzing this issue, attempting to uncover the truth.
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 and lengthy, containing many controversial viewpoints. After much consideration, I decided to completely rewrite it to make it more accessible to non-technical readers and reveal the deep-rooted issues that make Linux still struggle to match modern desktop PCs.
The original article written over a decade ago was quite popular, but now the website sees very little traffic, as 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 enthusiasts.
To reiterate, as in the old article, I want to make it clear: Linux can fully meet certain needs, especially when those needs are primarily focused on using the computer as a web client. Just fire up Firefox or Chrome (provided you are lucky enough that the hardware video acceleration on your system works properly. However, even as of 2024, hardware acceleration remains an issue, while Windows solved video encoding and decoding acceleration nearly perfectly almost 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 for 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:
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. Such a situation does not exist on Linux.
This is precisely the problem with Linux distributions. For Linux distributions, the preferred method of software distribution is to compile separately for each version of the operating system. This approach does not guarantee compatibility; most of the time, software from previous versions simply cannot run on your current Linux distribution.
Worse, 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 as source code.
However, the issue with source code 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; if no one is willing to take on the maintenance work, you simply won’t 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 won’t delve into their shortcomings(https://ludocode.com/blog/flatpak-is-not-the-future). In short, they are essentially lightweight virtual machines. The core principle of these tools does not truly solve compatibility issues but circumvents 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 WSL (Windows Subsystem for Linux) on Windows. 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, meaning that obscure applications you once used 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 indeed have compatibility issues), but this is not due to poor Win32 compatibility; rather, it is because game developers at the time were not prepared 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 give a clear answer, and the debate over which distribution is “better” or “more suitable” is endless.
Some may counter, “These issues don’t exist at all!” Well, you must have heard of Linus Torvalds, right? He said almost the same thing to me back in 2014(https://youtu.be/5PmHRSeA2c8)! But has anything changed since then? Absolutely not.
The only true compatibility between Linux distributions lies in their use of the same Linux system calls (this part is somewhat technical). Theoretically, this means that statically linked applications should be usable across all distributions. However, in reality, this is often not the case. For example, many Linux users have recently migrated to Wayland, with some even completely removing XWayland. As a result, statically linked X11 applications can no longer serve these users. Similarly, many technologies have been phased out as Linux has evolved.
For instance, applications based on ESound or OSS can no longer be used today, as modern Linux distributions do not include ESound or OSS at all, whether in analog or compatibility layers. Old system components like devfs, libc5, and a.out binaries have also been phased out, with no modern alternatives or backward compatibility support.
Lack of Software and Games
The vast majority of applications are developed solely 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 Vulkan version for Linux, performs far worse than the native Windows version. Moreover, despite CS2 having millions of players, it is hard to consider it a AAA title, as it is based on Direct3D 11, which is over a decade old and lacks modern lighting 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 online multiplayer games with millions of players, as 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! Just buy a Sony PlayStation!”
However, for Windows users, almost all Linux applications can run easily.
Even worse, Linux lacks certain very basic applications, even tools to check whether the system performance is normal.
File and Folder Sharing Issues on Local Networks
Linux lacks native technologies akin to Windows file sharing, which are easy to configure and support auto-discovery, encryption, and password protection. The Samba technology currently used by Linux is quite 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 deal with folder permission issues.
Some enthusiasts 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 along with 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 extremely complex. Not to mention using a graphical interface; nearly everything must be done through the command line.
Lack of Funding
Many software applications on Linux have numerous bugs and missing features. This is due to the severe lack of funding for Linux in the desktop space. While Linux has been unrivaled in the server domain, becoming the most popular operating system globally for over twenty years, the desktop situation is rather bleak.
Linux runs well on servers mainly because the vast majority of funding has flowed into the server space. However, desktop users have to deal with display issues and audio input/output problems.
Bug impacts on server providers (like Google, Facebook, and Netflix) are typically fixed immediately, with very high priority. But bugs affecting the Linux audio and video subsystems can linger for years. For instance, there may be no more than two active maintainers for the Linux audio subsystem.
Hardware Support and Compatibility
For new hardware, you may find that the Wi-Fi card, camera, audio, or even keyboard on your laptop may not work correctly. 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 less than for Windows. This means that certain bugs may persist for months, years, or may never be fixed at all, as 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 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.
Accidental Linux Security
Linux security on the desktop is almost “accidental” or “purely by luck.” The situation is slightly better on servers, but it still requires high-level professionals to manage. Here are some typical issues:
1. Most Linux users casually use the sudo command (granting full access to the system) without understanding its necessity and purpose.
2. Linux lacks a comprehensive native antivirus solution to scan for malware through sandboxes or emulations.
3. Many users download and run software from the internet without verifying its safety.
4. Most Linux users run commands from the internet directly without ensuring their functionality and safety.
5. Internally, Linux’s security mechanisms are quite complex, or to put it in AI terms: “Linux does not always provide a user-friendly interface for real-time permission issues.”
6. When you need to correctly share resources between user groups, good luck trying to set the directory and file permissions right.
7. Many Linux users disable Secure Boot for the following reasons:
– Third-party software requires Linux kernel drivers, and the complexity of using such software is extremely high.
– Cannot write to MSR CPU registers.
I submitted the above content to an AI tool for a response, and the AI’s answer was: “These problems are partially true, and the responsibility mainly lies with inexperienced users; users 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 then? Hundreds of malicious software have already appeared in various NPM, Python, and Ruby repositories.
-
In Windows, you have User Account Control (UAC). In Linux, you need to 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 to non-technical users.
-
Linux distributions that support Secure Boot often refuse to use their certificates to sign third-party drivers. Users have two options: either install their 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 does it make sense to restrict access to MSR registers when Secure Boot is enabled? It makes even less sense since these features can still be utilized in Windows.
“Ultimately, these problems are real but not insurmountable. They reflect the room for improvement in Linux’s usability and compatibility, while also highlighting the importance of user education.”
However, I find it strange that Windows, iOS, macOS, or Android seem not to require much “education.” Perhaps it’s just that there are flaws in the design of certain things?
The Linux Community
It is certain that you will encounter problems while using Linux. And when you try to seek help, you will witness 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 and even unpleasant.
Here are the “responses” you are most likely to receive when you ask a question:
-
You are using the wrong Linux distribution.
-
You are using the wrong Linux kernel version.
-
Your hardware is not compatible.
-
You are using Linux the wrong way.
-
Your expectations 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’re using it for free, what do you expect?”
Source:Xin Chuang New Situation
Disclaimer: This article is a network reprint, and the copyright belongs to the original author. However, due to numerous reprints, it may not be possible to confirm the true original author, so only the source of reprint is indicated. If there are copyright issues regarding the work, please contact us, and we will negotiate copyright issues or delete the content promptly! The abovecontentis reprinted from CSDN,for learning reference only, and does not constitute any advice. It does not representthe views of this public account nor does it take responsibility for its authenticity.