Live data from Hacker News

Loss32: Let's Build a Win32/Linux

loss32.org

281–290 of 493 posts

Re: Loss32: Let's Build a Win32/Linux

#281
post #50

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

Android makes a sport of breaking ABI compatibly and it hasn't stopped it from being the most popular mobile OS

That's outright not true though.

Re: Loss32: Let's Build a Win32/Linux

#282
post #252
post #174

Earlier quoted context omitted.

Kind of funny to realize, the NT kernel ABI isn’t even all that stable itself; it is just wrapped in a set of very stable userland exposures (Win32, UWP, etc.), and it’s those exposures that Windows executables are relying on. A theoretical Windows PE binary that was 100% statically linked (and so directly contained NT syscalls) wouldn’t be at-all portable between different Windows versions. Linux with glibc is the c…

IIRC, Windows containers require that the container be built with a base image that matches the host for it to work at all (like, the exact build of Windows has to match). Guessing that’s how they get a ‘stable ABI’. …actually, looks like it’s a bit looser these days. Version matrix incoming: https://learn.microsoft.com/en-us/virtualization/windowscont...

The ABI was stabilised for backwards compatibility since Windows Server 2022, but is not stable for earlier releases.

Re: Loss32: Let's Build a Win32/Linux

#283
Alternatively one could also use OneCore patched XP with MSYS2/MinGW/Cygwin with Bash, gnu tooling and the pacman package manager. One could compile most necessary software by hand. It runs a modern firefox, libreoffice and Windows7 games. Perhaps most of python, rust and node ecosystems would run. Or if one really needs a linux/wsl light alternative one could run virtualbox, qemu or colinux (up to the ancient kernel 2.6.33). Who needs 64 bit if the lean and mean 32-bit suffices and the Windows classic theme is included? Small llm's would probably not work, while they would with Loss32

Re: Loss32: Let's Build a Win32/Linux

#284

Earlier quoted context omitted.

Everything after Win 2000 was a bad idea. Enterprise or not.

Windows 2000 was the last version where Dave Cutler was fully in charge of Windows. Things started going downhill after that.

Windows 2000 was a bug riddled, poorly architected punching bag for malware.

Things definitely went up-hill AFTER Windows 2000.

What on earth would cause someone to say Windows 2000 was a good release? It wasn't even a good release when it came out, and it definitely didn't stand the test of time.

Re: Loss32: Let's Build a Win32/Linux

#285
post #106
post #65

Earlier quoted context omitted.

It's really just glibc

It's really just not. GTK is on its fourth major version. Wayland broke backwards compatibility with tons of apps.

Multiple versions of GTK or QT can coexist on the same system. GTK2 is still packaged on most distros, I think for example GIMP only switched to GTK3 last year or so.

Re: Loss32: Let's Build a Win32/Linux

#286
post #237

Earlier quoted context omitted.

This sounds like a hardware / firmware problem specific to your particular sound chip / card. Similarly, Bluetooth on my Thinkpad T14 is slightly wonky, and it sometimes fails to register a Bluetooth mouse on wake-up (I have to switch the mouse off and back on). This mouse registers fine on my other Linux machines. The logs show a report from a kernel driver saying that the BT chip behaved weirdly. Binary-blob firmwa…

That’s possible, but the hardware (a rodecaster pro 2 connected over usb) works just fine in other Linux apps. I can record audio in audacity. And I can play back audio in resolve. I just can’t record audio in resolve. I think it’s a software issue in how resolve uses the Linux audio stack. But I have no idea how to get started debugging it. I’ve never had any problems with the same hardware in windows, or the same s…

It is hard to blame Linux if only one proprietary app has sound issues.

FWIW I lost sound completely 3 times in the last 2 months on my works windows laptop and it would only come back after a reboot. I assumed it was a driver crash.

Re: Loss32: Let's Build a Win32/Linux

#287
post #4

Unironically, yes. It's time that Microsoft taste their own medicine of embrace, extend, and extinguish.

Here me out: Microsoft switches to Linux kernel for Windows 13. (also Microsoft has been heavily embracing Linux and open source in the last decade)

When WSL first came out, I realized that Windows might be Linux + Wine in 20 or 30 years.

Nowadays, with the Windows team barely able to produce a functional UI, what's happening with the NT kernel? Is it all graybeards back there? When they retire, the stability of Windows going to be in trouble, which is important for the things that really pull in the money. It'll get real bad, then they'll give up and move to an open source base, just like Edge.

Re: Loss32: Let's Build a Win32/Linux

#288

Earlier quoted context omitted.

At least glibc uses versioned symbols. Hundreds of other widely-used open source libraries don't.

> Hundreds of other widely-used open source libraries don't. Correct me if I'm wrong but I don't think versioned symbols are a thing on Windows (i.e. they are non-portable). This is not a problem for glibc but it is very much a problem for a lot of open source libraries (which instead tend to just provide a stable C ABI if they care).

> versioned symbols are a thing on Windows

There’re quite a few mechanics they use for that. The oldest one, call a special API function on startup like InitCommonControlsEx, and another API functions will DLL resolve differently or behave differently. A similar tactic, require an SDK defined magic number as a parameter to some initialization functions, different magic numbers switching symbols from the same library; examples are WSAStartup and MFStartup.

Around Win2k they did side by side assemblies or WinSxS. Include a special XML manifest into embedded resource of your EXE, and you can request specific version of a dependent API DLL. The OS now keeps multiple versions internally.

Then there’re compatibility mechanics, both OS builtin and user controllable (right click on EXE or LNK, compatibility tab). The compatibility mode is yet another way to control versions of DLLs used by the application.

Pretty sure there’s more and I forgot something.

Re: Loss32: Let's Build a Win32/Linux

#289
post #79

Earlier quoted context omitted.

To quote a friend; "Glibc is a waste of a perfectly good stable kernel ABI"

At least glibc uses versioned symbols. Hundreds of other widely-used open source libraries don't.

Yeah and nothing ever lets you pick which versions to link to. You're going to get the latest ones and you better enjoy that. I found it out the hard way recently when I just wanted to do a perfectly normal thing of distributing precompiled binaries for my project. Ended up using whatever "Amazon Linux" is because it uses an old enough glibc but has a new enough gcc.

Re: Loss32: Let's Build a Win32/Linux

#290
post #228

Earlier quoted context omitted.

So every Linux distribution should compile and distribute packages for every single piece of open source software in existence , both the very newest stuff that was only released last week, and also everything from 30+ years ago, no matter how obscure. Because almost certainly someone out there will want to use it. And they should be able to, because that is the entire point of free software: user freedom.

Your tone makes it sound like this is a bad thing. But from a user’s perspective, I do want a distro to package as much software as possible. And it has nothing to do with user freedom. It’s all about being entitled as a user to have the world’s software conveniently packaged.

What if you want to use a newer or older version of just one package without having to update or downgrade the entire goddamn universe? What if you need to use proprietary software?

I've had so much trouble with package managers that I'm not even sure they are a good idea to begin with.

Post reply on HN