Keep in mind that this list serves the purpose of showing what needs to be fixed in Linux rather than finding faults in it.

This list desperately needs to be reorganized because some of the problems mentioned here are crucial and some are not. There's a great chance that you, as a user, won't ever encounter any of them (if you have the right hardware, never mess with your system and use quite a limited set of software from your distro exclusively ).

Probably you've heard many times that Android thus Linux is conquering the entire world since it's running on the majority of smart phones (which are indeed little specialized computers but not desktops ). However there are two important things to keep in mind - firstly, Android is not Linux (besides, have you seen anyone running Android on their desktop or laptop?). Android contains the only Linux component - the kernel (moreover, it's a fixed old version (3.0.x, 3.4.x or 3.10.x as for 2016) which is maintained and supported solely by Google). Secondly, Android is not a desktop OS, it's an OS for mobile phones, tablets and other touch screen devices. So, this article is not about Android, it's about a horde of Linux distributions and Open Source Software included by these distributions (called "distro" below).

I want to make one thing crystal clear - Windows , in some regards, is even worse than Linux and it has its own share of critical problems . Off the top of my head I want to name the following quite devastating issues with Windows: • Windows rot , • no enforced file system and registry hierarchy (I have yet to find a single serious application which can uninstall itself cleanly and fully), • no true safe mode, • the user as a system administrator (thus viruses/​malware - most users don't and won't understand UAC warnings), • no good packaging mechanism (MSI is a fragile abomination), • no system-wide update mechanism (which includes third party software), • Windows is extremely difficult to debug, • Windows boot problems are often fatal and unsolvable unless you reinstall from scratch, • Windows is hardware dependent (especially when running from UEFI), • heavy file system fragmentation on SSD disks, • Windows updates are terribly unreliable and they also waste disk space, etc.

This is not a Windows vs. Linux comparison, however sometimes you'll find comparisons with Windows or Mac OS as a point of reference (after all, their market penetration is in an order of magnitude higher). Most issues listed below are technical by nature, however some of them are "political" (it's not my word - it's what other people say) - for instance when companies refuse to release data sheets or they release incomplete data sheets for hardware, thus Linux users don't get all the features or respective drivers have bugs almost no one in the Linux community can resolve.

Again, let me reiterate it, this article is primarily about Linux distributions , however many issues listed below affect the Linux kernel (the core of Linux distros and Android) as well.

In this regularly but rarely updated article, which is without doubt the most comprehensive list of Linux distributions' problems on the entire Internet, we only discuss their main problems and shortcomings (which may be the reason why some people say Linux distros are not ready for the desktop) while everyone should keep in mind that there are areas where Linux has excelled other OSes: excellent package management within one distro, multiple platforms and architectures support out of the box, usually excellent stability, no widely circulating viruses or malware, complete system reinstallation is almost never required, besides, Linux is extremely customizable, easily scripted and it's free as in beer.

(For those who hate reading long texts, there's a TL;DR version below). So Linux sucks because ...

Linux serversa lot less secure than ... Windows servers, "The vast majority of webmasters and system administrators have to update their software manually and test that their infrastructure works correctly".Seems like there are lots of uniquely gifted people out there thinking I'm an idiot to write about this. Let me clarify this issue: whereas in Windows security updates are mandatory and they are usually installed automatically, Linux is usually administered via SSH and there's no indication of any updates at all. In Windows most server applications can be updated seamlessly without breaking services configuration. In Linux in a lot of cases new software releases require manual reconfiguration (here are a few examples: ngnix, apache, exim, postfix). The above two causes lead to a situation when hundreds of thousands of Linux installations, because their respective administrators don't bother to update anything since they're afraid that something will break.August 2016 report from Kaspersky corroborates my thesis: in the first seven months of 2016 the number of infected Linuxincreased by 70%.Ubuntu, starting with version 16.04 LTS, applies security updates automatically except for the Linux kernel updates which require reboot (it can be eliminated as well but it's tricky). Hopefully other distros will follow.

The Linux kernel consistently remains one of the most vulnerable pieces of software in the entire world. In 2017 it had 453 vulnerabilities vs. 268 in the entire Windows 10 OS. No wonder Google intends to replace Linux with its own kernel.

Year 2016 pleased us with several local root Linux kernel vulnerabilities as well as countless other critical vulnerabilities. In 2016 Linux turned out to be significantly more insecure than often-ridiculed and laughed-at Microsoft Windows.

Year 2015 welcomed us with 134 vulnerabilities in one package alone: WebKitGTK+ WSA-2015-0002 . I'm not implying that Linux is worse than Windows/MacOS proprietary/closed software - I'm just saying that the mantra that open source is more secure by definition because everyone can read the code is apparently totally wrong.

Year 2014 was the most damning in regard to Linux security: critical remotely-exploitable vulnerabilities were found in many basic Open Source projects, like bash ( shellshock ), OpenSSL ( heartbleed ), kernel and others. So much for "everyone can read the code thus it's invulnerable". In the beginning of 2015 a new critical remotely exploitable vulnerability was found, called GHOST .

Here's a full quote by Torvalds himself: "So I personally consider security bugs to be just "normal bugs". I don't cover them up, but I also don't have any reason what-so-ever to think it's a good idea to track them and announce them as something special."

Firstly, forget about performance/bandwidth efficient RDP protocol (it's already implemented but it works by sending the updates of large chunks of the screen, i.e. a lot like old highly inefficient VNC), forget about OpenGL pass-through, forget about raw compressed video pass-through. In case you're interested all these features work in Microsoft's RDP .

Edit July 19, 2018: If you're running supported hardware with Fedora 28 and Linux 4.17 and later, power management must be excellent under Linux aside from watching videos (both online and offline: video decoding acceleration in Linux is still a very sad story).

A lot of people who are new to Linux or those who use a very tiny subset of applications are quick to disregard the entire list saying things like, "Audio in Linux works just fine for me." or "I've never had any troubles with video in Linux." Guess what, there are thousands of users who have immense problems because they have a different set of hardware or software. Do yourself a favour - come and visit Ubuntu or Linux.com forums and count the number of threads which contain "I have erased PulseAudio and only now audio works for me" or "I have finally discovered I can use nouveau instead of NVIDIA binary drivers (or vice versa) and my problems are gone."

There's another important thing that critics fail to understand. If something doesn't work in Linux, people will not care whose fault it is, they will automatically and rightly assume it's Linux's fault. For the average Joe, Linux is just another operating system. He or she doesn't care if a particular company ABC chose not to support Linux or not to release fully-functional drivers for Linux - their hard earned hardware just doesn't work, i.e. Linux doesn't work. People won't care if Skype crashes every five minutes under some circumstances - even though in reality Skype is an awful piece of software which has tonnes of glitches and sometimes crashes even under Windows and MacOS.

I want to refute a common misconception, that support for older hardware in Linux is a lot better than in Windows. It's partly true but it's also false. For instance neither nouveau nor proprietary NVIDIA drivers have good support for older NVIDIA GPUs. Nouveau's OpenGL acceleration speed is lacking, NVIDIA's blob doesn't support many crucial features found in Xrandr or features required for proper acceleration of modern Linux GUI s (like Gnome 3 or KDE4). In case your old hardware is magically still supported, Linux drivers almost always offer only a small subset of features found in Windows drivers, so saying that Linux hardware support is better, just because you don't have to spend 20 minutes installing drivers, is unfair at best.

Some comments just astonish me: "This was terrible. I mean, it's full of half-truths and opinions. NVIDIA Optimus (Then don't use it, go with Intel or something else)." No shit, sir! I've bought my laptop to enjoy games in Wine/dualboot and you dare tell me I shouldn't have bought in the first place? I kindly suggest that you not impose your opinion on other people who can actually get pleasure from playing high quality games. Saying that SSHFS is a replacement for Windows File Sharing is the most ridiculous thing that I've heard in my entire life.

It's worth noting that the most vocal participants of the Open Source community are extremely bitchy and overly idealistic people peremptorily requiring everything to be open source and free or it has no right to exist at all in Linux.With an attitude like this, it's no surprise that a lot of companies completely disregard and shun the Linux desktop. Linus Torvalds once talked about this: There are "extremists" in the free software world, but that's one major reason why I don't call what I do "free software" any more. I don't want to be associated with the people for whom it's about exclusion and hatred.

Most importantly this list is not an opinion. Almost every listed point has links to appropriate articles, threads and discussions centered on it, proving that I haven't pulled it out of my < expletive >. And please always check your "facts".

I'm not really sorry for citing slashdot comments as a proof of what I'm writing about here, since I have one very strong justification for doing that - the /. crowd is very large, it mostly consists of smart people, IT specialists, scientists, etc. - and if a comment over there gets promoted to +5 insightful it usually* means that many people share the same opinion or have the same experience. This article was discussed on Slashdot, Reddit, Hacker News and Lobste.rs in 2017.

* I previously said "certainly" instead of "usually" but after this text was called "hysterical nonsense" (a rebuttal is here) I decided not to use this word any more.

On a positive note

If you get an impression that Linux sucks - you are largely wrong. For a limited or/and non-professional use Linux indeed shines as a desktop OS - when you run it you can be sure that you are malware free. You can safely install and uninstall software without fearing that your system will break up. At the same time innate Windows problems (listed at the beginning of the article) are almost impossible to fix unless Microsoft starts from scratch - Linux problems are indeed approachable. What's more, Linux, unlike Windows 10, doesn't collect data on you and doesn't send it anywhere.

Also there are several projects underway which are intended to simplify, modernize and unify the Linux desktop. They are NetworkManager, systemd, Wayland, file system unification first proposed and implemented by Fedora, and others. Unfortunately no one is working towards stabilizing Linux, so the only alternative to Windows in the Linux world is Red Hat Enterprise Linux and its derivative (CentOS).

Many top tier 3D game engines now support Linux natively (with reservations): CryEngine, Unreal Engine 4, Unity Engine, Source Engine 2.0 and others.

Valve Software released Steam for Linux (alas, it only works well under SteamOS and it has compatibility issues with modern Linux distros) and ported the Source engine for Linux and also they developed a Steam gaming machine which is based on Linux. Valve's efforts have resulted in a number of AAA game titles having been made available natively for Linux, e.g. Metro Last Light. Valve since then have ported a lot of their games to Linux.

NVIDIA made their drivers more compatible with bumblebee, however NVIDIA themselves don't want to support Optimus under Linux - maybe because X.org/kernel architectures are not very suitable for that. Also NVIDIA started to provide certain very limited documentation for their GPUs.

Linus Torvalds believes Linux APIs have recently become much more stable - however I don't share his optimism ;).

Ubuntu developers listened to me and created a new unified packaging format. More on it here and here. Fedora developers decided to follow Ubuntu's lead and they're contemplating making the installation of third-party non-free software easy and trouble free.

The Linux Foundation formed a new initiative to support critical Open Source Projects.

An application level firewall named Douane has been graciously donated to the Linux community. Thanks a lot to its author!

Starting March 2017 you can watch Netflix in Linux.

In 2018 thanks to the DXVK project Linux gamers are now able to run DirectX 11 Windows games on Linux - Wine's own implementation is severly lacking and will probably be replaced with DXVK.

In August 2018 Valve released Proton for Steam: this compatibility layer based on Wine, allows you to run native Windows games from the Steam catalogue in Linux without using any tricks with almost native speed. Its only drawback is that it requires a modern enough GPU which supports Vulkan.

More and more games are now coded using the Vulkan API and they work just fine under Linux.