Skip to content
HHackerTube.videoSurprise me

Linus Torvalds on why desktop Linux sucks

Linus Torvalds on why desktop Linux sucks on HackerTube: recommended by 5 Hacker News commenters across 5 separate months, 2021–2026.

gentooman

talk · intermediate · evergreen

Open on YouTube

Excerpts from Linus Torvalds's DebConf 14 talk on why desktop Linux struggles. He covers application distribution, distros breaking backwards compatibility, wasted package management effort and how Windows does app distribution better.

Why Hacker News recommends it

Cited constantly in Flatpak, packaging and ABI-compatibility debates as Linus's blunt, insightful take on shipping software for Linux.

people recommended it
5
separate months
5
strong recommendations
0
discussed on HN
2021–2026
“Linus Torvalds explains it perfectly”
— Gareth321, Jul 2023, in “After 30 Years, Linux Finally Hits 3% Market Share”

What HN commenters said

20 Hacker News comments link this video. Each one links back to its thread.

Gareth321Jul 2023Recommends

> You accumulate software yes, but you also accumulate habits and knowledge. Changing OS means discarding all the accumulated knowledge, which 0% of "normal users" want to do. I only ever hear Linux users make this argument. Mac users are confident enough in MacOS UX that they know it’s not a significant barrier to transition. The same is not true of Linux. So many solutions to problems require opening the CLI, and that’s just an automatic fail for the vast majority of consumers. Honestly, I would like Linux fans to just accept Linux for what it is: an amazing kernel with incredible GUIs built by and for developers. App developers just do not care about (or do not have the resources for) making simple and intuitive software. Valve is a welcome and notable exception with the Steam Deck. Linus Torvalds explains it perfectly: ▶ this video

in “After 30 Years, Linux Finally Hits 3% Market Share” · View on HN

jiggawattsNov 2021Recommends

I watched a great rant by Linus T himself on how distributing code for Linux is a "pain in the arse", but is comparatively easier on Windows and MacOS: ▶ this video Something I took away from that is that it is Linus himself, personally, that is responsible (in a way) for Docker existing. Docker depends on the stable kernel ABI in order to allow container images to be portable and "just work" stably and reliably. This is a "guarantee" that Linus gets shouty about if the kernel devs break it. Docker fills a need on Linux because the user-mode libraries across all distributions are a total mess. Microsoft is trying to be the "hip kid" by copying Docker into Windows, where everything is backwards to the Linux situations: The NT kernel ABI is treated as unstable, and changes as fast as every few months. No one ever codes directly against the kernel on Windows (for some values of "no one" and "ever".) The user-mode libraries like Win32 and .NET are very stable, papering over the inconsistency of the kernel library. You can run applications compiled in the year 2000 today, unmodified, and more often than not they'll "just work". There just isn't a "burning need" for Docker on Windows. People that try to reproduce the cool new Linux workflow however are in for a world of hurt, because they'll rapidly discover that the images they built just weeks ago might not run any more because the latest Windows Update bumped the kernel version. I read all the way through this and wept: [link]

in “Flatpak Is Not the Future” · View on HN

KiranRao0Aug 2021Recommends

I remember a Linus Torvalds video on this exact problem. I found it both blunt at insightful: Linus Torvalds on why desktop Linux sucks : ▶ this video

in “AMD and Valve Working on New Linux CPU Performance Scaling Design” · View on HN

mumblemumbleJul 2021Recommends

Linus recently said something that left me thinking that Linux on the desktop has much deeper problems that need to be addressed before it's worth even thinking about the fine details of GUI toolkits. ▶ this video

in “Are we GUI Yet? The state of building user interfaces in Rust” · View on HN

cogman10May 2021Recommends

I think Linus really hits the nail on the head here. It's the fact that core libs, like glibc, are CONSTANTLY changing their ABI making it damn near impossible to ship a binary from one version of the platform to the next ▶ this video . You can still run windows 95 apps in windows 10. But running a ubuntu 12.04 binary in ubuntu 21.04? No way.

in “Rust Is a Wave of the Future” · View on HN

al_borlandAug 2026Cites it

Linus Torvalds has talked about this very issue. He didn’t even release his own app for Linux as a result and relied on others to pick up the slack and package the app for Linux, while telling them they were wasting their life. ▶ this video

in “I hate packaging my software for Linux” · View on HN

Show 14 more comments
0xDEAFBEADNov 2025Cites it

10 years ago Linus pointed out that most distros willingly break application compatibility all the time: ▶ this video I'm not really following desktop Linux, is Linus' assessment still accurate?

in “Linux gamers on Steam cross over the 3% mark” · View on HN

whalesaladNov 2025Cites it

"I’m on the record saying, that maybe Valve will actually save the Linux desktop. And it’s actually not because I think games are important! I don't care, I don't play games. I think some people do, so games maybe important. But the really important issue is I guarantee you Valve will not make 15 different binaries. And I also guarantee you that every single desktop distribution will care about Valve binaries." – Linus Torvalds in 2014 Link: ▶ this video

in “Steam Machine” · View on HN

misswaterfairyJul 2025Cites it

I haven't fully switched over, though I will soon. I daily drive a Mac laptop though I don't want to be totally locked into Apple's ecosystem, and sadly there's one software package I absolutely must use Windows for. Apparently Windows 11 LTSC is largely not enshittified so I'll give that a go for the Windows-only app. I use NTLite to strip out Microsoft's shit, and keep Windows updated without silently reinstalling said shit, though I shouldn't have to do this. Once Microsoft tries to force the media PC to upgrade, which happily sits on Windows 10, I'll be using it as a test-bed for Linux, likely SteamOS (despite technically not supporting this). Valve has a huge opportunity to take a significant portion of Windows' market share in promoting SteamOS as a Windows alternative, and hopefully fixing the 'Linux on Desktop' problems Linus Torvalds himself has long lamented about: ▶ this video SteamOS: [link] SteamOS on other devices: [link]

in “” · View on HN

RaisingSpearJun 2023Cites it

> So why not just statically link at this point? In many cases, you just can't. Other than glibc having issues with static linking, you can't use `dlopen` in a static binary. For example, if you're building an application which can use OpenCL, you need to dynamically link to the ICD installed on the system. And because `dlopen` doesn't work in a static application, you're stuck with dynamic linking the whole application (or at least with libc). On the other hand, Windows has no issue with `LoadLibrary` in a static binary... I don't know enough about GUI applications, but I wouldn't be surprised if anything needing graphical output is in a similar boat. The cherry on top is that glibc doesn't make it easy for an application to be built for an older version of the library. As Linus Torvalds can attest to [ ▶ this video ] building for Linux sucks.

in “Response to “Developers are lazy, thus Flatpak”” · View on HN

fancl20Mar 2023Cites it

I guess because package managers (apt, nix, ..) build around the idea of shared libraries, while bazel assume statically built. TBH it’s hard to say which operate model is better anyway. They are simply incompatible :) Related topic: ▶ this video

in “Scaling Rust Builds with Bazel” · View on HN

haunterDec 2022Cites it

Linus at DebConf 2014 ▶ this video >I’m on a record saying, that maybe Valve will actually save the Linux desktop. And it’s actually not because I think games are important! I don't care, I don't play games. I think some people do, so games maybe important. But the really important issue is I guarantee you Valve will not make 15 different binaries. And I also guarantee you that every single desktop distribution will care about Valve binaries. The problem is Valve though build everything statically linked and it creates huge binaries. And that's kind of sad but that's what you have to do right now.

in “Valve Is Paying Open-Source Developers to Work on Proton, Mesa, and More” · View on HN

jiggawattsAug 2022Cites it

> What does distributions have to do with need for containers? A lot (but not everything). It's important to recognise where the "stable API/ABI boundaries" are. In Linux, the stable boundary is the kernel. Userspace is unstable. There are many distributions, with many small and big differences. Different C runtimes, different folder structures, different configs, modules, etc... In Windows, the stable boundary is the Win32, COM, and .NET APIs, which are in user space. The kernel boundary is not stable[1] however, which also matters. Even Linus Torvalds has trouble distributing his hobby dive-computer software to Linux![2] He has no issues with MacOS and Windows, because they have stable APIs and distribution mechanisms. With Linux, the kernel is stable, but essentially nothing else is. If you want to distribute software to everyone , then this is a complex problem with many moving parts that you have to manage yourself. Containers sidestep this by packaging up the distribution along with the software being deployed. This works because the kernel ABI is stable. [1] In the Windows world you don't really need to package up the "Windows distribution" because there is only one: Microsoft Windows. Conversely, Windows containers aren't truly portable because the Windows kernel ABI isn't stable. However Microsoft changed this with Windows 11 and Server 2022, the kernel ABI is now "stable", or at least sufficiently stable for Server Core containers to be portable for 5+ years as-is.

in “Kubernetes reinvented virtual machines in a good sense” · View on HN

FlankkApr 2022Cites it

Linus Torvalds also has many criticisms of the Linux desktop.[1] None of the commercial applications I have bought will run on Linux without wasting time tinkering. For programming, I'm forced to use Xcode because it's required on the App Store. I couldn't use Linux even if I did want to use something worse than macOS. [1] ▶ this video

in “Farewell, Elementary” · View on HN

francislavoieDec 2021Cites it

Linus Torvalds about this: ▶ this video Distros (Debian in particular comes to mind) have some really annoying packaging rules, and as a maintainer of a Go program, it's a huge pain, so we decided to just set up a repo with [link] instead of trying to deal with that. They require every dependency (indirect or not) to be packaged separately. We don't have the time for that. Way simpler to just build a static binary and ship it.

in “Lazygit: A simple terminal UI for Git commands” · View on HN

badsectoraculaNov 2021Cites it

> Right, if you want Win32 API [...] Okay but which updates [...] Ok these are real things to ask for, that someone could feasibly attempt to do. These are examples . I'm not asking to use Win32 or add updates to Gtk1 or Gtk2. The important part is keeping ABI and API stability. Also i refer to what i'd like to see in a hypothetical library that did things right, not the current ones that either keep doing everything wrong (Gtk) or even if they wanted they can't due to the tech they're based on (Qt, though chances are even Qt could stay API and ABI compatible they wouldn't because they're primary middleware for paying corporations and only secondary a platform library that happened by chance thanks to KDE). > OpenGL is not really a good example because while it might be easy to add some things like vsync and triple buffering, other things (like GPU parallelization) are basically impossible (or extremely impractical) to try to hack into in the GL implementation. The fixed function mode is always going to have its limitations. It is a great example because it shows that it can remain API and ABI compatible for decades. Also both CPU and GPU parallelization could be implemented with extensions (though GPU parallelization is something that GPU vendors seem to be moving away from) in a variety of ways, e.g. using display lists in different threads a per-thread shared context that records a thread-local command list for the operations inside the display list than later can be execu

in “System76: A Case Study on How Not to Collaborate with Upstream” · View on HN

mmplxxAug 2021Cites it

The first sentence is probably true. The third one is objectively false: 1. Poor quality drivers. The money is not there. Intel and AMD might throw a couple of engineers on it but the process is always catching-up: slow and incomplete. Think of video, audio, power management, etc. I recently bought an AMD laptop just to discover modern standby and my jack headset are not supported, that my internal mic and speakers occasionally stop working and otherwise are too low, etc. After two kernel releases all these problems persist, even if they were acknowledged by the developers that are working on it (very resource-constrained). "Linux-ready" laptops might be a safer option but in general they are not cheap and they share most of the shortcomings listed here, it's just a safer gamble and you pay the insurance premium. Of course, if Linux had been sold OEM for 30 years with hardware vendors providing state-of-the-art drivers even before releases, this would be a different story. 2. The state of the display server. Multiple HiDPI screens with different scaling factors are not properly supported. This is an all too common requirement nowadays: FHD laptop + FHD/UHD external screen. X+xrandr is slow and buggy with most video drivers. Even after ten years, Wayland adoption is slow both by compositors and by apps. And critical functionality is missing or in alpha-state, for example screen sharing (a must have in these WFH days), be it because of the design of Wayland itself or because it

in “Perhaps WSL2 Should Be a Wake-Up Call” · View on HN

dcodeJul 2021Cites it

This is common indeed, and isn't a bug in the affected source languages for reasons. How it displays when printed is irrelevant. Here's Linus Torvalds explaining it better than I could: ▶ this video And sure you can transfer your string that someone else does not consider a string using alternative mechanisms, but then you are only not doing anything wrong because you are not doing it at all for entire categories of languages. There is no integration story for these, and once one mixes with optimizations like compact strings or has multiple encodings under the hood one cannot statically annotate the appropriate type anyhow. And sadly, adapter functions won't help as well when the fundamental 'char' type backing the 'string' type is already unable to represent your language's string. I also do not understand where the idea that a single language always lives in a single component comes from. Certainly not from npm, NuGet, Maven or DLLs. Extended this post to provide additional relevant context. It's not a bug, it's a feature.

in “An Urgent Notice from AssemblyScript” · View on HN

eddiehJun 2021Cites it

Okay I had to look up what Flatpak was since the link doesn't begin with a summary, abstract, thesis statement, or overview of whatever the subject is. Would it be so hard to start with "Flatpak, a cross distribution package format [1] for distributing Linux applications, is a security nightmare. We'll outline some flaws we believe to be deal breakers"? On the other hand, this seems like an attempt to fix application packaging on Linux which is something Linus has, rightly, complained about very publicly [2]. [1] I don't know what to call it exactly, is it a package format or a package manager? Could be something else entirely, I'm not sure. [2] ▶ this video

in “Flatpak – A Security Nightmare” · View on HN

aruncMay 2021Cites it

glibc breaks ABI quite often. Linus has roasted about it openly in the past ▶ this video Notable quote from that: If there's a bug that people rely on, it's not a bug, it's a feature.

in “Linux and Glibc API Changes” · View on HN

Topics & tags

Linux & open-source ecosystemsTech pioneers & interviewslinus torvaldsapplication distributionbackwards compatibilityflatpakdistros