60 comments

[ 2.7 ms ] story [ 62.3 ms ] thread
I've heard worse ideas. Not much, but some. An AI-driven Linux, for instance.
This is amusing but infeasible in practice because it would need to be behaviorally compatible with Windows, including all bugs along with app compatibility mitigations. Might as well just use Windows at that point.
Unironically, yes. It's time that Microsoft taste their own medicine of embrace, extend, and extinguish.
But would you want to run these Win32 software on Linux for daily use? I don't.
Building GUI utilities based on VB6 instead of status quo web technologies might actually be more stable and productive.
Or VB.NET? In some ways it's actually easier than VB6
Technically it's the only stable macOS ABI, too. The only way to run a legacy 32-bit binary on macOS today is a win32 exe running under Wine.
windows 11 for ARM, as bad of an OS it is in many aspects, is an incredible experience for backwards compatibility. I can run a 32 bit game built for windows xp in parallels and not have to think much.
> What is this? A dream of a Linux distribution where the entire desktop environment is Win32 software running under WINE.

I might unironically use this. The Windows 2000 era desktop was light and practical.

I wonder how well it performs with modern high-resolution, high-dpi displays.

Starting with FreeBSD might be easier than starting with Debian then removing all the GNUisms. But perhaps not as much Type II fun.
I mean... isn't that just X11 light compositor (like IceWM) with binfmt enabled?
It still puzzles me decades later how MS built the most functional, intuitive and optimised desktop environment possible then simply threw it away
Thus reinforcing development tools that target Windows desktop even further, the OS/2 lesson repeats itself.

And failing everything else, Microsoft is in the position to put WSL center and front, and yet again, that is the laptops that normies will buy.

This is only ever relevant for proprietary software. Free software does not require a stable ABI. Great that wine exists but it should be useless.

(That and Linux doesn't implement win32 and wine doesn't exclusively run on Linux.)

Crazy how, thanks to Wine/Proton, Linux is now more compatible with old Windows games than Windows itself. There are a lot of games from the 90s and even the 00s that require jumping through a lot of hoops to run on Windows, but through Steam they're click-to-play on Linux.
Yea! I love the spirit. Compatibility in computing is consternating. If my code is compiled for CPU Arch X, the OS should just provide it with (using Rust terminology) standard library tools (networking, file system, and allocator etc) , de-conflict it with other programs, and get out of the way. The barriers between OSes, including between various linux dependencies feels like a problem we (idealistically thinking) shouldn't have.
The difference between Win32 and Linux is that the latter didn't realize an operating system is more than a kernel and a number of libraries and systems glued together, but is, indeed, a stable ABI (even for kernel modules -- so old drivers will be usable forever), a default, unique and stable API for user interface, audio, ..., and so forth. Linux failed completely not technologically, but to understand what an OS is from the POV of a product.
I think there's a quote from Linus himself saying this.
This might offend some people but even Linus Torvalds thinks that the ABI compatibility is not good enough in Linux distros, and this is one of the main reasons Linux is not popular on the desktop. https://www.youtube.com/watch?v=5PmHRSeA2c8&t=283s
Using Arch Linux gets rid of all ABI annoyances: bleeding edge versions, everything compiled provided by the distro with signed packages, no incompatibilities all the way. Not to mention the support and docu. I don't know if I miss something.
> the ABI compatibility is not good enough in Linux distros

surely forced versioning of GLIBC didn't help.

"This program requires GLIBC_2.33"

It did help for programs built by those who know what they are doing. It doesn't magically fix developer incompetence/ignorance.
I like this idea and know at least a few who would love to use this if you can solve for the:

'unfortunate rough edges that people only tolerate because they use WINE as a last resort'

Whether those rough edges will ever be ironed out is a matter I'll leave to other people. But I love that someone is attempting this just because of the tenacity it shows. This reminds me of projects like asahi and cosmopolitan c.

Now if we're to do something to actually solve for Gnu/Linux Desktops not having a stable ABI I think one solution would be to make a compatibility layer like Wine's but using Ubuntu's ABIs. Then as long as the app runs on supported Ubuntu releases it will run on a system with this layer. I just hope it wouldn't be a buggy mess like flatpak is.

I'm back to running Windows because of the shifting sands of Python and WxWindows that broke WikidPad, my personal wiki. The .exe from 2012 still works perfectly though, so I migrated back from Ubuntu to be able to use it without hassle.

It's my strong opinion that Windows 2000 Server, SP4 was the best desktop OS ever.

I build a gaming VM and decided to go with Windows because the latest AMD drivers (upscaling etc..) only works there for now.

I wanted to be nice and entered a genuine Windows key still in my laptop's firmware somewhere.

As a thank you Microsoft pulled dozens of the features out of my OS, including remote desktop.

As soon as these latest FSR drivers are ported over I will swap to Linux. What a racket, lol.

Can somebody explain:

1. The exact problem with the Linux ABI

2. What causes it (the issues that makes it such a challenge)

3. How it changed over the years, and its current state

4. Any serious attempts to resolve it

I've been on Linux for may be 2 decades at this point. I haven't noticed any issues with ABI so far, perhaps because I use everything from the distro repo or build and install them using the package manager. If I don't understand it, there are surely others who want to know it too. (Not trying to brag here. I'm referring to the time I've spent on it.)

I know that this is a big ask. The best course for me is of course to research it myself. But those who know the whole history tend to have a well organized perspective of it, as well as some invaluable insights that are not recorded anywhere else. So if this describes you, please consider writing it down for others. Blog is probably the best format for this.

This is a really cool idea. My only gripe is that Win32 is necessarily built on x86. AArch64/ARM is up and coming, and other architectures may arise in the future.

Perhaps that could be mitigated if someone could come up with an awesome OSS machine code translation layer like Apple's Rosetta.

This is going to be a bold claim but here goes.

This will never work, because it isn't a radical enough departure from Linux.

Linux occupies the bottom of a well in the cartesian space. Any deviation is an uphill battle. You'll die trying to reach escape velocity.

The forcing factors that pull you back down:

1. Battles-testedness. The mainstream Linux distros just have more eyeballs on them. That means your WINE-first distro (which I'll call "Lindows" in honor of the dead OS from 2003) will have bugs that make people consider abandoning the dream and going back to Gnome Fedora.

2. Cool factor. Nobody wants to open up their riced-out Linux laptop in class and have their classmate look over and go "yo this n** running windows 85!" (So, you're going to have to port XMonad to WINE. I don't make the rules!)

3. Kernel churn. People will want to run this thing on their brand-new gaming laptop. That likely means they'll need a recent kernel. And while they "never break userspace" in theory, in practice you'll need a new set of drivers and MESA and other add-ons that WILL breaks things. Especially things like 3D apps running through WINE (not to mention audio). Google can throw engineers at the problem of keeping Chromium working across graphics stacks. But can you?

If you could plant your flag in the dirt and say "we fork here" and make a radical left turn from mainline Linux, and get a cohort of kernel devs and app developers to follow you, you'd have a chance.