Live data from Hacker News

Loss32: Let's Build a Win32/Linux

loss32.org

101–110 of 493 posts

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

#101
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.

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

#102
post #90

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 man…

The model of patching+recompiling the world for every OS release is a terrible hack that devs hate and that users hate. 99% of all people hate it because it's a crap model. Devs hate middlemen who silently fuck up their software and leave upstream with the mess, users hate being restricted to whatever software was cool and current two years ago. If they use a rolling distro, they hate the constant brokenness that comes with it. Of the 1% of people who don't hate this situation 99% of those merely tolerate it, and the rest are Debian developers who are blinded by ideology and sunk costs.

Good operating systems should:

1. Allow users to obtain software from anywhere.

2. Execute all programs that were written for previous versions reliably.

3. Not insert themselves as middlemen into user/developer transactions.

Judged from this perspective, Windows is a good OS. It doesn't nail all three all the time, but it gets the closest. Linux is a bad OS.

The answers to your questions are:

(1) It isn't backwards compatible for sophisticated GUI apps. Core APIs like the widget toolkits change their API all the time (GTK 1->2->3->4, Qt also does this). It's also not forwards compatible. Compiling the same program on a new release may yield binaries that don't run on an old release. Linux library authors don't consider this a problem, Microsoft/Apple/everyone else does. This is the origin of the glibc symbol versioning errors everyone experiences sometimes.

(2) Maintaining a stable API/ABI is not fun and requires a capitalist who says "keep app X working or else I'll fire you". The capitalist Fights For The User. Linux is a socialist/collectivist project with nobody playing this role. Distros like Red Hat clone the software ecosystem into a private space that's semi-capitalist again, and do offer stable ABIs, but their releases are just ecosystem forks and the wider issue remains.

(3) It hasn't change and it's still bad.

(4) Docker: "solves" the problem on servers by shipping the entire userspace with every app, and being itself developed by a for-profit company. Only works because servers don't need any shared services from the computer beyond opening sockets and reading/writing files, so the kernel is good enough and the kernel does maintain a stable ABI. Docker obviously doesn't help the moment you move outside the server space and coordination requirements are larger.

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

#103

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.

There's not much x86 specific about Win32 and you can make native ARM Windows programs for years already. WinNT was designed to be portable from the start. Windows/ARM comes with a Rosetta like system and can run Intel binaries out of the box.

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

#104
post #72
post #69

Earlier quoted context omitted.

Anything around DirectX 10 and older has issues with Windows, these days. One more popular example is Grid 2, another is Morrowind. Both crash on launch, unless you tweak a lot of things, and even then it won't always succeed. Need for Speed II: SE is "platinum" on Wine, and pretty much unable to be run at all on Windows 11.

Isn’t this because the wine db has those tweaks pre configured?

More a case of DirectX radically changing how it worked [0].

[0] https://learn.microsoft.com/en-us/windows/win32/direct3darti...

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

#105
post #15

It still puzzles me decades later how MS built the most functional, intuitive and optimised desktop environment possible then simply threw it away

It still is if you're an enterprise customer. The retail users aren't Microsoft's cash cows, so they get ads and BS in their editions. The underlying APIs are still stable and MS provides the LTSC & Server editions to businesses which lack all that retail cruft.

In my day job, Explorer still freezes every second day, GUI interactions take several seconds and the sidebar is full of tabloid headlines and ads.

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

#106
post #65
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

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.

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

#108
post #28

Earlier quoted context omitted.

Performance?

If there was sufficient interest in it, most performance issues could be solved. Look at Python or Javascript, big companies have financial interest in it so they've poured an insane amount of capital into making them faster.

Isn’t python still the slowest mainstream language?

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

#109
post #15

It still puzzles me decades later how MS built the most functional, intuitive and optimised desktop environment possible then simply threw it away

Piracy. The consumer versions are filled with ads because most people don't pay for them.

Is this really the case? I feel like most windows users just bought a laptop with Windows already on it. Even if all home users were running pirated versions they would still become entrenched in the world of Windows/Office which would then lead to enterprise sales.

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

#110
post #38
post #25

Earlier quoted context omitted.

WINE has been reimplementing the Win32 ABI (not API) for decades. It already works pretty well; development has been driven by both volunteers and commercial developers (CodeWeavers) for a long time.

There are many programs that still do not work properly in WINE, even though it has been developed for decades. This in itself demonstrates the infeasibility of reimplementing Win32 as a stable interface on par with Windows. The result after all this effort is still patchy and incomplete.

There are many programs that do not work properly in Windows 11, so using Windows to run Windows programs doesn't work either.
Post reply on HN