11 ms·
See also https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/ https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost... one of the
by knallfrosch 3y ago
See also
https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/ 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 Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
- candiddevmike 3y agoThis seems like an interesting vector for a virus.
- AnotherGoodName 3y agoThese older games will all work in 640kb so the fix would likely just have been to fence off 640kb completely from other apps while SimCity was running.
- netsharc 3y agoSim City 2000 used DOS/4GW though: https://en.wikipedia.org/wiki/DOS/4G https://en.wikipedia.org/wiki/DOS/4G : > It allows DOS programs to eliminate the 640 KB conventional memory limit by addressing up to 64 MB of extended memory on Intel 80386 and above machines.
- binkHN 3y agoNice. OpenBSD does something similar, with the difference being that there are no exemptions for specific software—they expect developers to fix their broken programs.
- pradn 3y agoThat's not similar at all! Windows takes the "Linux way" of "not breaking userspace" seriously. OpenBSD has other goals - some sense of minimality and clarity, but this is not one.
- vasco 3y ago> That's not similar at all! That was the joke, friend.
- pradn 3y agoIf it was a joke, my bad !
- nullindividual 3y agoAnd unlike Linux, has a stable ABI.
- blibble 3y agoLinux has a stable userland ABI OpenBSD doesn't even have that: if you don't reboot quickly after installing a major upgrade you're going to have a bad time whereas you can run ancient userland on more modern Linux kernels (as evidenced by the container ecosystem)
- PlutoIsAPlanet 3y agoThe Linux kernel has a stable userland ABI. Other core components that makes up most Linux distros (e.g. libc, gtk, libc, curl, ssl etc) however do not.
- deleted 3y ago[deleted]
- account42 3y agoThe libc (glibc) absolutely has a stable ABI. Stop spreading FUD.
- failuser 3y agoCounter-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 better with no stable ABI. Mac is a mixed bag of excellent Rosetta and breaking apps for no reason. Who did it better? FreeBSD? Some extinct “grown-up” OS like VMS?
- belltaco 3y ago> They have been using similar toolset to break competitors applications Source(s) ?
- failuser 3y agoThis, for example. And they got caught. How many times they did not? https://www.theregister.com/1999/11/05/how_ms_played_the_incompatibility/ https://www.theregister.com/1999/11/05/how_ms_played_the_inc...
- lsaferite 3y agoYour 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.
- TylerE 3y agoPlus, let's be real, the Register is basically the tech equivalent of the Daily Mail. Often amusing, occasionally occurate.
- 3y ago
- mrguyorama 3y agoSearch for the bonus chapters to Raymond Chen's "Old new thing", which goes through MANY examples of how there was an entire team who's job was to go through popular applications and hack windows to make them work on the new OS
- lamontcg 3y agoFrom 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.
- ohgodplsno 3y agoYou'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/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 do not stem from anywhere near the kernel. 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...
- rbanffy 3y ago> The user's software _has_ to run. My concern is that a lot of security issues may have come from this. A clever attacker could grab recently freed memory from one of these programs and inject malicious code to enjoy whatever other weird privileges the original program has, because marketing said it can’t crash.
- ohgodplsno 3y agoThe compatibility hacks are not "revert to old, terribly unsafe behavior". Rather, "use current, good behavior, lie to the application about what happened."
- saagarjha 3y agoThis actually improves security by preventing UAF.
- everial 3y ago
- bitwize 3y agoMeanwhile, the Asahi Linux GPU driver checks to see if the first character of the process name is 'X', and simply nopes out if it is. Because why are you still running Xorg, asshole? You should have switched to Wayland by now. https://social.treehouse.systems/@marcan/110904454552941656 https://social.treehouse.systems/@marcan/110904454552941656
- olddustytrail 3y agoHow dare the Asahi folks not do a huge amount of free work to support you? Don't they know how important you are?!
- bitwize 3y agoYes, you're right, how arrogant of me not to expect kernel-level active sabotage of still widely used software, in a kernel where "don't break user space" is a guiding law of development.
- olddustytrail 3y agoThe driver doesn't work with xorg. What do you think it should do? Pretend it does? Do you actually know how software works?
- Racing0461 3y agoThis is actually what most gpu driver updates are. Instead of devs fixing their games, nvidia calcilated its in their best interest to just fix the game bugs at the gpu driver level and push updates.
- hoten 3y agoIs this done by intercepting the API calls made to the GPU, or by directly modifying the game binary instructions?
- magnat 3y agoModifying binaries (on disk or in RAM) would be detected by anti cheat mechanisms. Most likely they change how to interpret a certain sequence of API calls or replace shaders with their optimized versions.
- Racing0461 3y agoYeah, i guess i shouldn't have said "bug" in the traditional sense. More like "lets rewrite the gpu calls for this game instead of getting 53 avg fps, they now get 60 avg fps) since we (being nvidia) knows it better. Most likely when a game is released, the team that build it disbands to work ons omething else and wont have time for performance hacks like this.
- zten 3y agoSee the infamous story about Quack 3 on ATI Radeon cards.
- deaddodo 3y agoHere's the link, for those interested: https://techreport.com/review/how-atis-drivers-optimize-quake-iii/ https://techreport.com/review/how-atis-drivers-optimize-quak... Personally, I don't believe this is a good example; as this was ATI purposefully crippling the experience (downscaling textures, being the prime aspect) to cheat benchmarks. OP is more referring to "transparent" optimizations (the same experience, but made to run faster for the GPUs architecture, usually via operation reordering or shader modifications).
- amno 3y agoYes, Raymond Chen describes such fixes in [several blog posts](https://devblogs.microsoft.com/oldnewthing/ https://devblogs.microsoft.com/oldnewthing/) and in his book The Old New Thing. Check the old posts, back at the beginning. There are posts about to which lengths they went to ensure buggy applications still worked after an update or a fix.
- jasfi 3y agoThey would likely not have done this today. That fix was a product of its time. From what I can tell, SimCity had already been released. Many users likely didn't have an Internet connection, and even if they did, there was no auto-update via Steam.