Live data from Hacker News

Windows 11 will happily execute a binary compiled 30 years ago

twitter.com

161–170 of 424 posts

Re: Windows 11 will happily execute a binary compiled 30 years ago

#161

Earlier quoted context omitted.

From where I'm sitting this looks like an excellent argument for breaking backwards compatibility. All those bullshit hacks are a maintenance and debugging burden for someone and a tax on the whole rest of the operating system -- and I'd argue that it really shows.

You're sitting on the point of view of a software developer. Microsoft's point of view is that the underlying software doesn't matter. The user's software _has_ to run. The Application Compatibility Database ( https://learn.microsoft.com/en-us/windows/win32/devnotes/app... ) is, overall, a relatively small component, and all it does is apply some shims if your executable is in that list. Performance issues in Windows…

> The kernel team is absolutely top tier. The kernel itself is of much higher quality than what you'd find on Linux, or MacOS.

Have recommended sources for this or learning more? My experience with Windows doesn't match this at all, though from my perspective it's hard to tell if it's kernel as opposed to any of the layers above it.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#162

See also https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost... one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Win…

From where I'm sitting this looks like an excellent argument for breaking backwards compatibility. All those bullshit hacks are a maintenance and debugging burden for someone and a tax on the whole rest of the operating system -- and I'd argue that it really shows.

The thing about Microsoft is that they developed a framework for doing that kind of thing in a systematic way so it is not so hackish as it sounds.

That's an innocent example but do recall that circa 1995-2005 or so, Microsoft looked like a dangerous monopolist and could have been in legal jeopardy if a product that competes with office (say WordPerfect) quit working when they went from Win 95 to Win 98 or Win 2k to Win XP.

I'd also add that more than once I've had web pages and applications I've made been used as test cases by Microsoft and been contacted by people from Microsoft about compatibility issues. (... and I've never been an advocate of Microsoft browsers, often I've been quite the opposite.) I haven't heard once from Netscape, Mozilla, Apple, Opera or Google about something like this.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#163

See also https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost... one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Win…

Counter-example: Soldier of Fortune is broken on modern windows because of a misapplied compatibility hack. Rename the binary and it works with no problems. This is an awful way to implement backwards compatibility. Opaque and ad-hoc. They have been using similar toolset to break competitors applications. The choice of what old version of windows to run the program on is typically to try them one by one. Linux is no…

> Linux is no better with no stable ABI.

I’m confused. Linus has repeatedly stated that the ABI should be stable, “we don't break user space”. There are exceptions, but any proposal that makes a breaking change to the kernel’s external symbols is very hard to push through.

I don’t remember anything breaking because of a new kernel version except device drivers, which are part of the kernel anyway and should be compiled for a specific kernel version. They are not applications, so they shouldn’t rely on assumptions about the ABI.

Most Linux distros offer mechanisms to compile a version-dependent interface to isolate a version-independent driver or program that messes too closely with the kernel.

> Some extinct “grown-up” OS like VMS?

I’d say the age of binary compatibility ended with most of those “grown-up” OSs becoming legacy. I usually test (compile and test) my C code on multiple platforms, ranging from Windows to Solaris on SPARC (emulated these days, sadly). I haven’t yet figured out a cost-effective way to test it under IBM z/OS’s USS (which makes z/OS a certified UNIX).

Re: Windows 11 will happily execute a binary compiled 30 years ago

#164
post #63

What I find so frustrating is that Windows, under the hood, is so solid. It's just the UI with Bing/Ads/telemetrics/etc integration is so crap, like they've ruined a solid OS with crappy surface level stuff.

You forgot the mandatory MSFT accounts to sign in with no way around last I checked (a few months ago).

[deleted]

Re: Windows 11 will happily execute a binary compiled 30 years ago

#165

Earlier quoted context omitted.

You're sitting on the point of view of a software developer. Microsoft's point of view is that the underlying software doesn't matter. The user's software _has_ to run. The Application Compatibility Database ( https://learn.microsoft.com/en-us/windows/win32/devnotes/app... ) is, overall, a relatively small component, and all it does is apply some shims if your executable is in that list. Performance issues in Windows…

> The kernel team is absolutely top tier. The kernel itself is of much higher quality than what you'd find on Linux, or MacOS. Have recommended sources for this or learning more? My experience with Windows doesn't match this at all, though from my perspective it's hard to tell if it's kernel as opposed to any of the layers above it.

Notably Microsoft does not document an API to the kernel, the official userspace interface in Windows is the DLLs they provide. In that since, Wine, which provides DLLs that implement the same interface over the Linux kernel is conforming to the way windows works, and Cygwin, which provided a POSIX-like libc that ran on the Windows kernel is a Windows-centric way to implement POSIX.

(That said, the path of WSL 1, which emulated the Linux syscall interface on Windows, takes advantage of the idea Windows NT had from the very beginning which was implementing "personalities" that could pretend to be other OS, such as the original plan for Windows NT to be OS/2 compatible.)

Re: Windows 11 will happily execute a binary compiled 30 years ago

#167

Does Linux have this backwards compatibility? What about macOS? I know instruction sets changed from PowerPC to Intel to ARM, so probably not macOS at least. But this is a CLI and I doubt old system calls changed

Linux will just compile 30 yo binaries.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#168

Earlier quoted context omitted.

From where I'm sitting this looks like an excellent argument for breaking backwards compatibility. All those bullshit hacks are a maintenance and debugging burden for someone and a tax on the whole rest of the operating system -- and I'd argue that it really shows.

You're sitting on the point of view of a software developer. Microsoft's point of view is that the underlying software doesn't matter. The user's software _has_ to run. The Application Compatibility Database ( https://learn.microsoft.com/en-us/windows/win32/devnotes/app... ) is, overall, a relatively small component, and all it does is apply some shims if your executable is in that list. Performance issues in Windows…

> The kernel team is absolutely top tier. The kernel itself is of much higher quality than what you'd find on Linux, or MacOS. > > Now, the upper layers however...

You're not selling me on the idea that the compatibility layer has no cost by pointing out that the upper layers that reside over it are a mess.

That would actually be my argument.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#169
post #63

What I find so frustrating is that Windows, under the hood, is so solid. It's just the UI with Bing/Ads/telemetrics/etc integration is so crap, like they've ruined a solid OS with crappy surface level stuff.

You forgot the mandatory MSFT accounts to sign in with no way around last I checked (a few months ago).

Use the email no@thankyou.com with any password. It will let you install on Win 11 with a local account.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#170

Earlier quoted context omitted.

Sure. Apple is also giant and (probably?) fits those descriptors as well. Why is Mac so solid under similar circumstances?

I've only used MacOS for a year and only recently (maybe that matters), and I get all the same crappy inconsistent behaviour I do on Linux and did on Windows ~20 years ago when I last used it. Apple has the benefit of controlling both hw and sw and still manage to mess it up. Random crashes, slowdowns for long running sessions, crappy UI (eg those labels not checking their checkboxes in Settings), network weirdness (…

You haven't used Windows in quite a while have you ? Past Windows 7 it's been sliding downhill into bullshit UX, crapware, backend migration to Linux almost exclusively, etc.

Random things on top of my head :

MacOS doesn't come with candy crush, Instagram, TikTok, Spotify etc. prepopulating your start menu. Phone home telemetry and ads in OS ? Yummy

Dealing with Windows dev environment is always a PITA eventually - unless you're doing stuff where Windows is first class citizen (like games). For backend stuff it's almost implicit that you're running on Linux in prod and macos is well supported because it's fairly similar. On Windows it's always some path issues, stuff randomly breaking between updates, missing/incompatible CLI, etc.

Brew is pretty good. Chocolatey is garbage.

MacOS is fairly visually consistent. Windows regularly has me in Windows XP era screens, reached through 3 inconsistent UX steps developed along the way. Even Linux is better in this regard.

I like Linux when it works. Mac works more often. Windows is just a dumpster fire at this point.

Post reply on HN