4 ms·
yes it can run things that don't use much of the API surface (just using libc? probably fine) however try running a game from the Windows 95/98 days and you've
by blibble 3y ago
yes it can run things that don't use much of the API surface (just using libc? probably fine)
however try running a game from the Windows 95/98 days and you've got a maybe 50/50 chance of it working
e.g. they changed the return code from BitBlt from 95/98 -> XP, they used to return the number of scanlines but switched it to a boolean
same with the heap management functions, directory traversal functions, etc
- mikkohypponen 3y agoSome stuff works fine. See https://twitter.com/mikko/status/1692552661374005450 https://twitter.com/mikko/status/1692552661374005450
- blibble 3y agojust don't try anything that used safedisc
- pjmlp 3y agoThose issues only apply to Windows 9x linage. Current Windows versions trace back to Windows NT 3.51/2000 linage. Naturally 9X => XP don't work flawlessly, they are two different OS stacks.
- blibble 3y agowell yes however it sort of undermines the "insane compatibility" / "stable API" point if mass-market Windows software produced before the 2001 release of XP mostly doesn't work on modern Windows NT effectively forked Win32 (introduced with Windows 3.1) into something incompatible (meanwhile it all runs on Wine perfectly fine)
- pjmlp 3y agoWhat? Windows NT never forked anything. Windows 3.1 introduced Win16 protected mode with segmented memory. Win32s was a backport from a Win32 subset from Windows NT 4.0. Windows NT linage exists since 1993.
- sillywalk 3y agoI remember Win32s, I think Netscape Navigator needed it. I was thinking Lode Runner, but that was WinG. I always thought it was backported from Windows 95, thanks for the info.
- eternityforest 3y agoTry running something from only ONE year ago on Linux and it very often won't work, unless it's an Appimage or Flatpak, or you're on Nix, They might not break userland but Qt and GTK do the breaking for you. Python joined the party recently. Random DBus daemons might be missing, etc.
- memefrog 3y agoYou can run binaries from decades ago on Linux too. This is about a DOS binary. Well, a command line program that just uses system calls is fine too.
- worewood 3y agoOnly if it is statically linked with everything it needs. Otherwise good luck resolving dependencies.
- eternityforest 3y agoEven then it might not work because it could rely on a DBus daemon being there. Even a brand new binary might fail because it needs some external program they forgot to add to the dependencies list in the package, so you have to sift through to find the not at all obvious package that provides it. Or something was compiled without some option for unknown reasons so you're just SOL unless you want to compile stuff yourself.
- memefrog 3y agoHow is that any different from any other program on any system failing because of a daemon not running? Inter-process communication exists on every operating system. IPC means your program's behaviour can be different depending on what other processes are running. This is not specific to Linux. Your other point is equally as inane. Anything might fail because it requires some external program, or external data files, or any other external resource. A program might fail because it requires a particular hardware device to be plugged into your computer. None of that has anything to do with the operating system. >Or something was compiled without some option for unknown reasons so you're just SOL unless you want to compile stuff yourself. Oh no! The terribly, impossibly difficult task of running a program! How could you ever subject me to such a fate as having to compile stuff myself. You cruel beast!