Linus Torvalds on why desktop Linux sucks
gentooman5 HN recommenders · recommended in 5 months, 2021–2026
talk · intermediate · evergreen · 2021–2026 on HN
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.
Cited constantly in Flatpak, packaging and ABI-compatibility debates as Linus's blunt, insightful take on shipping software for Linux.
Up next
2 mo on HNCppCon 2019: Matt Godbolt “Compiler Explorer: Behind The Scenes”
CppCon
2 HN recommender · 2021–2025
3 mo on HNTwitter and Visual Studio Rant
Molly Rocket
3 HN recommender · 2020–2026
5 mo on HNArithmetic, Population and Energy - a talk by Al Bartlett
lXlSalemlXl
6 HN recommender · 2016–2023
4 mo on HNCppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook"
CppCon
4 HN recommender · 2018–2026
2 mo on HNThe Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]
cpponsea
2 HN recommender · 2021–2022
9 mo on HNLISA11 - Fork Yeah! The Rise and Development of illumos
USENIX
9 HN recommender · 2012–2026
3 mo on HNHow big is a visible photon?
Huygens Optics
3 HN recommender · 2021–2025
11 mo on HNCppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
7 HN recommender · 2017–2025
14 mo on HNThe Tragedy of systemd
linux.conf.au
16 HN recommender · 2019–2025
10 mo on HNThe Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
13 HN recommender · 2013–2026
8 mo on HNTech Talk: Linus Torvalds on git
Google
9 HN recommender · 2007–2023
7 mo on HNDebConf 14: QA with Linus Torvalds
Adnan Hodzic
7 HN recommender · 2014–2021
12 comments from Hacker News
> 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
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
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
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
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.
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
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?
"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
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
> 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.
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
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.