Live data from Hacker News

Windows 11 will happily execute a binary compiled 30 years ago

twitter.com

181–190 of 424 posts

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

#181

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.

From a sales point of view though, if your operating system can run one of the most popular games at the time, it means people won't just keep using the existing one.

It had to be a step forward, not a step back. I mean I don't know what you're using at the moment, but if your favorite application didn't work on the next version, would you upgrade?

This is why Apple spent so much on Rosetta, first when going from PowerPC or whatever to x86/64, then from that to ARM / M1, while in the meantime building a developer and application ecosystem that allows for easier transition between CPU architectures and environments.

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

#182

Earlier quoted context omitted.

> Mac is a mixed bag of excellent Rosetta and breaking apps for no reason. They will probably retire Rosetta2 in a few years, like they did with Rosetta. Apple usually seems to care about getting the bulk of applications to transition over, and the rest is just collateral damage/the devs should’ve just updated their software.

Definitely. All Intel Mac apps will be abandoned. Even tiny apps like Spectacle will cause pain.

I've found Rectangle to be a good substitute / in-place replacement.

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

#183

Earlier quoted context omitted.

Definitely. All Intel Mac apps will be abandoned. Even tiny apps like Spectacle will cause pain.

I've found Rectangle to be a good substitute / in-place replacement.

Thanks, it actually makes sense to switch. And Spectacle is even open source, so the amount of pain is minimal.

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

#184

All the people on that Twitter thread getting butthurt about it and complaining that Windows' backwards compatibility is a bad thing... WTF koolaid have they been drinking? I don't often sing Microsoft's praises but backwards compatibility is something they get absolutely right: something they've always got right. Everything doesn't have to be changing and breaking all the time and, to me, it's a mark of maturity whe…

I agree.

As an example: The Xbox Series X, their newest flagship model, is fully backwards compatible with all of the Xbox physical CD games from all Xbox systems. Just pop the CD in and you are good to go.

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

#185

That's cute and all, but it's fucking gzip. It doesn't have complex dependencies. Pretty sure Linux could run a 30 year old gzip binary too. I've never needed to do that with gzip but I have definitely run binaries of a similar vintage without issue. Windows backwards-compatibility fails miserably on non-trivial programs, you're generally pretty lucky if you can get something from the XP-era or older to work out of t…

Someone ran the gzip binary on Linux just fine: https://twitter.com/stderrdk/status/1692652013711221045

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

#186

Earlier quoted context omitted.

This, for example. And they got caught. How many times they did not? https://www.theregister.com/1999/11/05/how_ms_played_the_inc...

Your evidence is an article from 24 years ago about behavior that happened 32 year ago? And it's not even about them breaking competitors applications, it's about them refusing to run on a competing OS (in a bit of a sleezy way). Do you have more evidence of your claimed behavior? I dislike MSFT, a lot, but that's a _very_ big claim and needs to be backed up with evidence.

Plus, let's be real, the Register is basically the tech equivalent of the Daily Mail. Often amusing, occasionally occurate.

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

#187
post #79

Earlier quoted context omitted.

This is true. I'm not sure what the obstacle is, and I know a lot of smart people have worked on it, but opening a ton of files and traversing a bunch of them in directories is very slow. Once the file is open, IO is just as fast though.

Filesystems are a database and have to deal with CAP Theorem trade-offs like everything else. Windows and NTFS both took a heavy focus on Consistency/(lack of) Partitions over Availability. Most POSIX operating systems and their filesystems took a heavy focus on Availability at the expense of Eventual Consistency and Sometimes Partitions. Neither approach is wrong, they are just very different approaches with very di…

I remember hearing that allocating space on NTFS on Windows takes a long time for a large amount of files and/or disk space compared to ext4 and the like on linux. Presumably they are built to write out 0's or something when they do that whereas in linux you're just updating inodes or whatever. I remember this was in reference to Steam allocating file system space for game files before downloading them.

I don't know if it was the views of the designers of NTFS taking a different set of priorities or if it's more that NTFS wasn't designed as well as some linux file systems were.

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

#188

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.

> All those bullshit hacks are a maintenance and debugging burden for someone That’s why that someone is getting paid -it’s their job. If you want software to power important things in society, like transport and energy, you need to have a certain level of responsibility for reliability. As this post demonstrates, Right now we have immature children who are used to breaking things for the sake of a new fad, in charge…

This really bothers me and I'm young, I am TIRED of applications FORCING restarts, and other garbage as a software culture. You are doing something? Oh sorry our developer team thought it would be smart to crash your whatever task you are doing by force to give you a 2 line changelog.

Typing a dm on discord or talking to people? boom random restart to force update, using firefox nightly? sorry you cannot use it as your main browser because they can decide to brick your browser randomly to force you to restart. for no reason whatsoever, what is the downside of just warning people but not FORCE restarting? none.

Doing critical stuff on your pc that requires long term uptime? sorry Windows will decide for you to restart forcefully (at least these can be turned off, for now, via group policy)

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

#189

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.

There's an absurd number of components to the Windows Kernel, so here's a kind of disjointed list of various things, from different time frames.

Windows Research Kernel - https://github.com/HighSchoolSoftwareClub/Windows-Research-K... - More or less Windows XP

I/O Completion ports - https://learn.microsoft.com/en-us/windows/win32/fileio/i-o-c... - io_uring, but mostly better, since NT 3.5

General architecture info: https://en.wikipedia.org/wiki/Architecture_of_Windows_NT

A bunch of things you'll find in Windows Internals, which is pretty much the bible for Windows (https://empyreal96.github.io/nt-info-depot/Windows-Internals..., or buy it online. Mark Russinovich is a treasure trove of Windows knowledge)

The various Windows subsystems - Windows is built from the start to be able to impersonate other OSes. While the most obvious one is WSL (despite WSL2 being just a VM), there's an OS/2 Subsystem, a POSIX Subsystem, a Win32 subsystem...

Very few things actually run in kernel mode. There exists a almost-kernel-but-not-quite mode called executive mode, which is a much better option than Linux's all or nothing user-or-kernel (and, as far as I know, Mach has the same problem)

NT is a hybrid kernel: not quite monolithic, not quite micro. This allows Windows to do things like swapping your video drivers live as it's running, unlike Linux and Mach which would miserably crash. Hell, it can even recover from a video driver crash and restart it safely, and all you'll see is a few seconds of black screen.

The breadth of devices it supports is absolutely breathtaking. (well, in part because they very much have a hand in forcing manufacturers to respect the standards that they write)

All of Sysinternals (Mark Russinovich's work, again) is also an amazing resource: https://learn.microsoft.com/en-us/sysinternals/

Now, mind you, this is purely about technical merits: the NT Kernel is a miracle of technology. The APIs it exposes, and that most Microsoft products expose are downright batshit insane sometimes. But that's also what happens when you support 35 years of software. Also, the HANDLE pattern that most Win32 API uses is the superior alternative to dumb pointers (https://floooh.github.io/2018/06/17/handles-vs-pointers.html)

Oh and a bunch of The Old New Things articles, but I can't be arsed to look them up right now, sorry.

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

#190

Earlier quoted context omitted.

This, for example. And they got caught. How many times they did not? https://www.theregister.com/1999/11/05/how_ms_played_the_inc...

Your evidence is an article from 24 years ago about behavior that happened 32 year ago? And it's not even about them breaking competitors applications, it's about them refusing to run on a competing OS (in a bit of a sleezy way). Do you have more evidence of your claimed behavior? I dislike MSFT, a lot, but that's a _very_ big claim and needs to be backed up with evidence.

My claim is that Microsoft operating system was silently detecting competitors software and changing behavior to break compatibility. That is proven. The war on WordPerfect was equally shady.

Did Microsoft clean its act at some point and stopped doing so? They force Edge at every opportunity, so even the behavior that almost got them forcefully partitioned is back.

I don’t think we have caught them outright sabotaging e.g. Chrome aside from the default browser shenanigans, but who would bother to check unless it’s a repeatable crash? Aside from Chrome what app do they even have a need to sabotage? Steam?

Post reply on HN