Google isn't as aggressive and most? apps are bytecode only, but I kind of don't expect an apk for Android 1.0 to function properly if run on an Android today. At least if it does anything advanced with networking or needs permissions that changed a lot.
Linux should work if it was static compiled, and probably helps if it doesn't use audio; because Linux audio has changed a lot in 30 years. A dynamically linked Linux binary from 30 years ago is nearly hopeless, because it would have been linked against a different libc that's in common use today, and I doubt that will be on your system today. If you had the full filesystem, it should run in a chroot.
MacOS was System 7 in 1993, on 68k, not power pc. Those applications aren't running on your M2 without emulation. Dropping 32-bit support doesn't help either, of course.
FreeBSD 1.0 was released in November 1993, so it's not quite 30 years old, but I suspect a static compiled app may work, but libraries will be hard. FreeBSD makes compat packages to get libraries to run older software, but I don't see one for 1.x or 2.x, the package for 3.x was marked expired in 2010, but compat4x seems alive and well; that gets you 20 years of probable compatability.
So that's a pretty hard limit. Linux can run binaries that were compiled to the latest binary standard in 98.
For the most part the old DLL interface (kernel32 et al) just sticks around indefinitely even as parts are officially deprecated. Microsoft is careful not to break their public interfaces.
Actually yes, C&C Red Alert 2 was running slow, but the community came up with patches that make it play nice, including the multiplayer which now works better than it did back in 2000.
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 when an organisation can maintain compatibility so as not to inconvenience - and introduce unbudgeted (and sometimes very high) costs to - users, integrators, and consumers. Top marks, Microsoft.
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.
They may not care about backwards compatibility as an abstract concept, but they would like their computer continue functioning the same way today as it did yesterday.
Although MS is getting somewhat bad at that from a general OS perspective with their updates.
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 the box.
That's actually pretty good. XP was released over 20 years ago.
So yeah, I'll take my chances with that luck.
Not since Linux dropped a.out binary support completely in 5.18. Any newer kernel can't run it.
Right click on windows desktop had what now 3 different menus that might show depending on what you want to do. Oh. And let’s not talk about how much of what you see just covers the stuff up from 1998. Still rendering the old stuff only to have a slightly larger menu render right on top of it.
Honestly, I think a barebones, absolute minimist windows OS would be something that interest a lot of technical users. You can only stack shit so high.
https://support.microsoft.com/en-us/windows/windows-10-and-w...
Hahah no way? Is this documented somewhere? And the new UIs are slooow!
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.
https://www.xbox.com/en-US/games/backward-compatibility
However, that is an impressive amount of backwards compatibility that other game consoles don't have.
(I only have the JP version, which I assume will never work with my UK Xbox Series X, even if the UK version would actually be compatible. Maybe I need to dig it out of my garage and try it anyway.)
No point when this problem has been solved with containers (docker, flatpak etc).
Using Windows 11 the answer is ReFS.
The bar is so vastly different for windows and Linux users and by and large I try to keep my mouth shut because I dual boot and I know DAMN WELL which OS needs more handholding and has required fuck-it-start-over handling. God forbid you ever try to login to Win11 with low disk space, you're totally FUBAR and there are countless reports online of this EXACT FKING SCENARIO. Imagine for one second if Linux became COMPLETELY BROKEN if you ran out of disk space, it would be A JOKE.
If manufacturer would consistently publish to LVFS, I would NEVER TOUCH WINDOWS AGAIN. And I play Halo every single day of my life. Sorry gaming on Linux is less of a complete pain in the ass than using windows. You paying attn MSFT? Your stock price is 80% of my life, so I sure hope so.
"Everything is constantly changing"?! Are you FUCKING kidding me? What has changed in Linux is the past 15 years other than Wayland, which, I've been running for 4+ years and know what is BS and what isn't (DM me and I'll screen share stream my desktop at arbitrary scale factors at 240hz). I can run Gnome2, I can run kde3 for gods sake. Meanwhile there's crapware discussed here weekly just trying to get a basic Start Menu back in Win11, or constant complaints about ads, or regressions or ON and ON; do y'all have ANY self respect?
Stockholm syndrome, laziness, take your pick, it's exhausting.
https://www.windowscentral.com/how-set-windows-11-without-mi...
Shit, at my current job, we're developing software that runs solely on x86-64 Linux (And our output is an entire VM image, not just an executable), yet we're running on M1 Macs. TBH, it's quite painful and I wish I understood what the hell the engineering department is thinking, since you can't run x86-64 VMs on M1 hardware.
But for gamers, Windows's backwards compatibility makes it king. I can usually easily run 15+ year old games without a hitch.
Across the rest of the world macOS numbers aren't that high, still better than "Desktop Linux" though.
"it allows only apps from Microsoft Store"
That's a showstopper... but cool, ty for sharingSlackware 2.0 was one of the first distributions to ship it.
Using "no@thankyou.com" for your Microsoft account (and any made up value for the password) allows you to skip this requirement in any version of 10/11 as someone got that account banned and the Microsoft workflow bails out since they naturally don't want to force onboard a banned user to a new account. This still requires internet during install though, it just works around needing to make an actual account.
It's a shame how much of a dance the install process has become.
By the standard conversion rate, I think that means 4 people could knock it out in 6 weeks.
(This is just a vague recollection from last time I installed Windows, might be wrong)
The “drive” part of dev drive is a clever hack to bypass corporate anti malware policy settings.
So, I'm not sure the perf increase can just be attributed to malware scanning. ReFS has some features that NTFS doesn't have like copy-on-write which might help in read-only I/O perf.
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 (both USB ethernet dongles/hubs and internal WiFi), my USB audio interface picking up garbled audio which requires reselecting audio interface for it to fix itself...
Maybe I am doing something different, but it's even worse than Linux for the most part.
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.
MacOS also has telemetry.
>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.
Then Windows would be better than MacOS in this regard because WSL2 is exactly Linux, not just "fairly similar" to Linux.
>stuff randomly breaking between updates
What stuff broke for you between updates? Our entire DS team develops in windows + WSL2 and nothing broke for them in ~5 years. Maybe they know how to use a computer.
Ultimately just use what you like and what makes you productive, no need to crusade for some big corporation. The OS is just a tool for your job, like a hammer.
Now have you tried uninstalling Apple Music ? or found a way to disable it from launching everytime you press the play button on your headset with no media player running ?
In the last few years I've looked at every macos updates with more an more dread of things that will stop working and generic enshitification. Windows stays more "in your face" on the cheap marketing stuff, but it also brought in a lot more improvements than macos did in the last 10 years, so I don't as much difference in experience as in the past.
With so many webtech-apps (Slack, Google calendar...) and non-native UI browsers (Firefox/Chrome), visual consistency is lost anyway, so I stopped caring (the best experience I had was with GNOME in 2.* early HIG/a11y days when I used Epiphany as the web browser) — oh yeah, I use Emacs too, so there's that :)
Still, most common Mac-as-Linux approach with Docker Desktop is an incompatible emulation layer (eg. local UIDs are transformed into root UID on Mac, whereas they are not on Linux, so you get weird permission errors if you develop on Mac and rebuild/redeploy on Linux).
I take that as a feature and is the whole crux of this discussion. I don't need ODBC or many such archaic features but if someday I need to use it, I trust it will be working.
YMMV but my experience is the opposite. Windows is a perfectly usable dev environment. The only time I face issues is when developers don’t choose to use cross platform tools.
> Chocolatey is garbage.
I’ll give you this one, but that’s why anyone serious on Windows is using scoop.
I've been using Macs for a decade, and the only time I had this happen was on corporate laptops with antivirus software installed. Antivirus software are poorly written and they used to have constantly crashing kernel extensions. Apple has been deprecating kernel extensions in recent years, so the situation is improving. But the performance hit caused by antivirus crapware is unfortunately still a thing.
Where do you see MacOS ruining 30 year old binaries?
B2B Windows is the stuff you would see for enterprise buyers with strict IT policies. Your experience will be mostly unchanged from "classic Windows".
Apple also, due to the hardware business, adheres to a release schedule where features must all be consolidated onto single branches (“convergence”), rather than letting individual teams ship incrementally.
> ...the UI with Bing/Ads/telemetrics/etc integration is so crap...
That's the logic. Using Windows web components is similar to using Google products.
Neither approach is wrong, they are just very different approaches with very different performance trade-offs.
Also Windows' filesystem supports an entire plugin stack including user-space plugins, to support things like anti-virus scanners and virtual filesystems and all sorts of other things. Not all of Windows' "slow" filesystem is first-party problems, a lot of it can be third-party drivers and tools that are installed.
the CAP theorem simply does not apply
Windows IO subsystem was simply designed for extensibility over performance
B) The Windows filesystem (and to an extent the POSIX) isn't just "local", it also includes transparent and semi-transparent network file storage.
C) Windows and POSIX are both multi-user and multi-process. They operate over multiple cores and multiple I/O buses.
Even if it just one system API centralized in charge of all that, it still needs to be built on top of complex distributed dance of mutexes/locks/semaphores/other distributed control structures. Because of the nature of I/O control there are complex caches involved and transaction semantics of when data is actually pulled from/flushed to low level data stores. The transaction model in turn is reflected in what the files look like to other users or processes running at the same time.
Windows and NTFS combined have strong transaction guarantees that other users and processes must see a highly consistent view of the same files. It makes heavy uses of locks by default even for cached data. POSIX favors the "inode" approach that favors high availability and fewer locks at the cost of eventual consistency and the occasional partition (the "same" file can and will sometimes have multiple "inodes" between different processes/users, many common Linux tools rely heavily on that).
Those two different transaction models are most easily explained in analogy to CAP Theorem. They are very different transaction models with different trade-offs. Whether or not you see a single "local machine" or you see a distributed system of cores, processes, users, diverse I/O buses is partly a matter of perspective and will reflect how well you personally think CAP Theorem is a "perfect" analogy for a filesystem.
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.
But also, Steam's allocation step seems an interesting relic of Windows 9X design patterns, smaller hard drives, worse cache/temp folder options, and (much) slower download speeds. It probably isn't necessary and they could maybe design something simpler and better from scratch today. (But it's probably a "not broke don't fix it" thing at this point.)
What? I've never seen the taskbar clock ever move.
A quick google search doesn't bring my issue up (I'll try to take a screenshot next time it happens, but I'm usually too annoyed of having to use windows to think about it). But it did bring up a separate issue, where the right-hand side icons area (system tray?) and the clock are moved down so that only the top of the date is showing. I've never had that one.
I think these are lag-related, as in things move when something opens. But if the thing before didn't complete or something, the new thing happening doesn't get to remove the old one as expected.
The other day, on a PC that was doing whatever it is that windows does when the CPU fan goes full tilt while pretending to be asleep (complete with the blinking power light), after waking it up, I managed to have both the notification center and the quick settings displayed. I mistakenly clicked on the notification, then immediately on the settings. The notification panel took forever to show up, and it showed while the settings panel was still showing.
it is almost the definition of "not a distributed system"
the fact there might be nfs/smb/ceph/... volumes bolted into the same namespace that happens to include it does not make it one (and neither does requiring transactions)
> Windows and NTFS combined have strong transaction guarantees that other users and processes must see a highly consistent view of the same files. It makes heavy uses of locks by default even for cached data. POSIX favors the "inode" approach that favors high availability and fewer locks at the cost of eventual consistency and the occasional partition (the "same" file can and will sometimes have multiple "inodes" between different processes/users, many common Linux tools rely heavily on that).
this is literally is not true, they are different abstractions
and I suggest you observe the size of a large file being copied if you want to see how "strong" NTFS "highly consistent views" are
https://devblogs.microsoft.com/oldnewthing/20111226-00/?p=88...
Surely you aren't making the argument that Microsoft is generous enough to let you remove their bloatware?
And who do I trust more - company that bundles third party crap ware and openly talks about OS ads as monetization avenue. Or a company selling me xxxx$ machine and wanting to sell me a next one with the OS in the future. As much as I dislike Apple walled garden - their incentive structure is way more aligned with me than Microsoft desktop.
> Then Windows would be better than MacOS in this regard because WSL2 is exactly Linux, not just "fairly similar" to Linux.
Haven't seen that be better than a VM.
Doing anything WSL on Windows FS is dog slow and vice versa, split toolsets conflicts (different git config between host and guest, different SSH). Just SSH into a VM - it's a way better experience - the boundaries are clear and the editors know the implications of working on a remote machine.
Not saying you can't use Windows, but you can also eat from a trough - I just prefer not to.
You throw a lot of stones considering how fragile your glass house is. Apples is the same company that wanted to scan your phone, that you bought and own, for child porn and report you to the authorities if something was found.
How you or anyone can blindly trust them after that is beyond me. Trust no major corporation regardless of how shiny their products are is my life motto.
>Haven't seen that be better than a VM.
It is, that's why people use it. Look up tutorials online.
Seems uncalled for.
You quoted what I said then turned it into this strawman for a snarky jab: "Surely you aren't making the argument that Microsoft is generous enough to let you remove their bloatware?"
>at least before you edited your comment to remove it.
I removed more points because the comment was getting huge.
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.
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?
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.
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).
Source(s) ?
it's because the nvidia drivers are opaque blobs, rather than a source distribution.
If nvidia distributed their drivers as open source, i would imagine developers would likely "fix" their games properly because they'd be able to see what is going on underneath the hood, and write more optimal code.
of course, this removes some "competitive advantage" nvidia has over their AMD counterpart.
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.
In todays world it looks like a ludicrous solution to the problem. The game vendor needs to HTFU and distribute a patch via steam or whatever and that’s a totally reasonable stance for microsoft or apple to take, because the infrastructure for patch distribution is pervasive and robust now.
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 of critical systems.
You’re thinking like an engineer. Microsoft is a business. Backwards compatible is its major core competency.
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 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...
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.
It's precisely because of that backwards compatibility, insane in both the workings and the result, that keeps most people using Windows.
People use computers to get stuff done, and Windows lets people use the absolutely massive library of Windows programs whether it was written today or over 30 years ago.
Yep, the most popular desktop OS in the world and the 2nd biggest company in the world.
There are business reasons to maintain backwards compatibility, and they were very strong before the easily updated software.
You have been playing your game fine. You installed a new Windows OS and now the game no longer runs. As an average customer, who do you blame? Hint: not the game studio.
Because why are you still running Xorg, asshole? You should have switched to Wayland by now.
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.
Regarding that hobbyist OS OpenBSD, where the developers care about nothing besides security, there were no proprietary application packages available. Most retailed applications in those days ran on SunOS/Solaris or HP/UX.
There's been quite a few cases for me, like Star Citizen for example, where games perform significantly better under Proton with DXVK than it does on Windows!
https://sporks.space/2022/02/27/win32-is-the-stable-linux-us...
It's impossible to build on shifting foundations that are constantly breaking backward compatibility. You eventually spend all your time maintaining instead of creating.
Then you have to go reinvent your wheel, and in my experience as a user your shiny new one isn't necessarily better.
Most of the software I use is more than 10 years old. Some is still updated, some is not (or went cloud and left me happily behind).
Any Steam game that used the "Games for Windows – Live" service, and wasn't updated since the service shut down in 2014, would fail to launch on Windows 10 & later, because the DLLs for the service were removed. For a time, folks were able to download the DLL from third-party sites, but that doesn't work now.
z/OS (aka OS360 aka MVS) supports programs going back to the 60s and I just talked with a DE at IBM who is still using a program compiled circa Apollo 11 mission.
Other systems that will run or automatically translate > 30 yr old binaries:
- I believe IBM i on POWER {i5/AS400} will run stuff from System 38 (1980).
- HPE Nonstop (aka Tandem Guardian ) on X86-64 will run or translate binaries from the original proprietary TNS systems (late 1970s) and MIPS systems (1991).
What is kind of neat is every windows application/dll is a valid DOS application. The first part of all of them is a valid MZ DOS 16 EXEcutable. Windows just treats it as a skippable header and reads the real header that is about 100 bytes in and then decides which subsystem to fire up (win3x, win32, OS/2, etc). But if you take a exe compiled today with current tools and put it on a DOS 3.3 box it would run the exe and print out it can not run (the exe has that in there).
Also from that era not all DOS applications were exclusively 16 bit. Many were hybrid. Just to have better control over the memory space instead of using segmentation was usually worth the speed boost (as well as the bigger registers). Windows from that era usually had extra 'pid' file where you could basically tag the executable as 'hey you are about to run a 32 bit app get out of the way windows oh and support dpmi while you are at it'.
I'm aware of win32s, I used to run it but still it seems unlikely this is a win32 console app unless there's an incredibly unlikely set of circumstances behind this.
Or perhaps it was simply recompiled after all despite what the Twitter post states?
To be clear, I am not saying that it's not impressive in the shitshow that is 2023. I am saying what norms we should work towards.
The kernel abi is stable, everything else is pure chaos, and this is mostly due to how applications are usually packaged in linux: your app could load (as long as it’s not in a.out format) but then would fail at loading most libraries. So effectively you need a whole chroot with the reference linux distro (or other runtime in general) and I’m not so sure you could find archives of 30 years old distros.
And I’m assuming that the kernel abi hasn’t actually changed a single bit and that no other interfaces changed either (stuff like /proc or /sys - /sys wasn’t even there 30 years ago i think).
And if you’re running an Xorg app, I wouldn’t bet my lunch on that level of protocol-level compatibility.
Why this is a mark against Linux and not Windows is beyond me.
Microsoft's devotion to its customers shouldn't be so amazing-- it's the way that every company should behave.
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
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.
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.
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)
I was playing an old MMORPG called The Realm. It's been live since 1995 and ran until just a couple months ago. It only knew how to run in 640x480.
I tried to write a program that would create a scaled up version, but it didn't work well, especially since the game would create child windows for certain UI elements. I was writing it in C, which isn't my strongest language, simply so I could call Win32 APIs more easily.
https://www.myabandonware.com/game/mtv-s-beavis-and-butt-hea...
Apple has never had a problem throwing away their customers’ investment in their ecosystem. I was at a company with several hundred Macs when the transition away from PowerPC happened. It was just brutal. And costly. Not just hardware, software too.
And, what for? From a business perspective, you can do the same fundamental work woth both systems. The difference are: My investment is protected in one case and not the other. We have a bunch of Macs here. Only where absolutely necessary and for multi-platform testing.
As much as MS is maligned by purists, the truth of the matter is they have always protected their customers by having a remarkable degree if backwards compatibility, which isn’t easy to achieve and maintain.
https://learn.microsoft.com/en-us/microsoftteams/limits-spec...
[1] https://github.com/riverar/IndirectInput
[2] https://support.gog.com/hc/en-us/articles/360019256854-Myst-...
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 isn’t hostile and if you ONLY use the kernel ABI or statically compile everything, it will work quite a long time.
But if you use dynamic libraries, you gonna have a hard time unless you have source.
These changes are not like they announce something and the next day the libraries/APIs are gone. There is always a transition period that is long enough for the apps to be updated.
Is this issue specific to Windows 10, and would it work on Windows 11?
You would receive such response on the every 64-bit Windows starting from Win2003, there is no 16-bit NTVDM in 64-bit systems.
If you need to run it:
a) use 32-bit Windows 10 (Win11 do not have 32-bit variant)
b) use DOSBox
c) ... VirtualBox/PCem/whatever with 'real' DOS.
d) there are some NTVDM ports for 64-bit systems, use at own risk. Ctrl+F in this post.
there's a troubleshooter there, too
Telometry and other questionable things aside, I've loathed and detested every UI change that Microsoft has done since Windows 7.
I unequivocally believe that windows 7 was peak windows UX. Every subsequent version, I've limped by using classicshell and then openshell.
Windows 11 is the first windows release where I didn't feel the need to install something to bring me back to the late 2000s.
My only pet peeve is not allowing me to create accounts that don't tie into outlook. Yes I know there are tricks to bypass this but I shouldnt have to do that.
If anything, software has it easier: you can layer emulation layer on emulation layer and then only have to adapt the outer layer for whatever pointless changes you are making to the current system.
These programs don't use DLLs, and frankly there's little reason they for them to stop working.
[0] https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/uti...
[1] https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/uti...
Yes, these should be fixed properly in the programs instead of the driver but more often than not they won't users don't care that its the program being buggy when it works with another driver because it either doesn't trigger the bug or has its own workaround. The opposite also exists of course - application workaround for driver bugs. Or for bugs in crappy third-party code that gamers like to inject into the process, e.g. the Steam overlay.
If anything, AMD drivers probably have more workarounds as devs are more likely to test with NVidia due to the unbalanced market share.
all of what you say could apply to AMD or Intel but doesn't loo
> 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.
This drove me into looking for a vanilla executable that wouldn't have that after-the-fact DRM, and I discovered the 1.13 mod. So, I had one happy experience with Vista.
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.
Not that I think the Google/Blink monopoly is a great thing, especially with their recent moves, but they did stick by some of their "sticking to standards" rhetoric.
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).
[0] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...
https://www.theregister.com/1999/11/05/how_ms_played_the_inc...
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.
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?
Not least of which is pouring millions into a baseless pump and dump scheme laying hallucinated charges of infringement against the entire Linux ecosystem but there are plenty of other issues.
In short people hated them for being shitty people who do shitty things and present leadership were important folks when these shitty things were done everyone just moved up a few rings.
They aren't better people they just have better aligned incentives where illegality and immorality aren't profitable.
Perhaps, but hate against Microsoft was not the point of the discussion. You are free to see them in whichever light you want, I just don't understand why you have to down-vote me or bring that into completely different discussion.
The question here was about the technical issues and their work on making software tick despite people abusing the API and producing buggy software. That has nothing to do with hate against Microsoft. To me that sounds like a whataboutism.
By the way, I personally don't even use Windows, I have been 100% Linux user since many years and have contributed to a GNU project, I am not some Microsoft fanboy as you might see me. But I see no value in defending a wrong, and I see the same behavior repeated in other communities. People abuse the API or don't read the documentation or just are plain idiots, and than accuse the developers for being malicious or stupid or whatever when things break. That behavior is bad for anyone, regardless if it is against Microsoft or some GNU project.
> In short people hated them for being shitty people who do shitty things and present leadership were important folks when these shitty things were done everyone just moved up a few rings.
I am sure people have many reasons they hate something or someone for, Microsoft included. There are people who passionately hate GNU, Linux, FSF, you name it. If you justify such behavior, it is your choice, but I am not interested in that discussion. I was talking about people abusing API and than blaming Microsoft for incompetence or deliberate evil, while the company obviously went to quite long efforts to make things work, even for buggy software. Microsoft may as well be evil or good for other reasons, but wasn't really the point of discussion.
> They aren't better people they just have better aligned incentives where illegality and immorality aren't profitable.
This is outright dangerous behavior on your part. You are transferring a behavior you have projected on a company over the entire group of people, all the thousands of people who work for Microsoft. To start with, they are all individuals, and as in every group there are good and bad characters among them. Also, history is against you, Microsoft was, and still is very profitable company. In the time we speak about, they were probably too profitable for its own best. For the second there are law and law enforcement officials to decide if they did illegal business or not.
Not to mention, that probably most of those who worked there back in 90's are probably retired or have changed the job by now. Also, to note, with thinking and statements like that one, you are denying people chance to develop as individuals and become better persons.
As opposed to now?
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)
If you run Firefox from its default mechanism, it will update itself and ask to restart before applying the update, and will continue working forever, never updating until you restart it.
I'm on Firefox beta for a year or so and never seen this - it politely shows update notice and that's all. Updates itself once I close all open windows of FF. Wonder why Nighly do different things here. From another side - running nightly is expected to be not the same smooth as stable release.
Discord is a great example, because it's very far from being optimal in so many regards. It could be written in C++ and be so much faster, use so much less memory, it could be more reliable in many aspects… But because most people don't care, what Discord creators do is roughly the most meta-efficient (money efficient?) thing to do.
This is similar to the fact that Office 95 will work on recent Windows, but Office 2k won't.
I distinctly remember patching DOOM from 1.1 through 1.2, 1.4, 1.666 to 1.9
https://www.zdnet.com/article/caldera-unlocks-microsoft-evid...
> You are transferring a behavior you have projected on a company over the entire group of people
I specifically indicted the top leadership who were as now in a position of authority when immoral actions were taken and continued to work for the same org. This is a pretty clear and defensible position whereas you said.
> That has nothing to do with hate against Microsoft. To me that sounds like a whataboutism.
and also
> I remember the hostility in those years 95-2005 towards Microsoft. There is still some cult in some Internet communities where trashing anything developed by Microsoft is seen as some kind of expertise or something by usually self-proclaimed experts.
You compared people with a legitimate ax to grid to cultists and denigrated them to "self proclaimed experts" You are again the party committing the sin you project.
> There are people who passionately hate GNU, Linux,
These things aren't of neutral value. There are people who hate purple and Hitler but nobody thinks these things are the same.
> For the second there are law and law enforcement officials to decide if they did illegal business or not.
They actually were repeatedly found to have engaged in illegal behavior in a court of law and furthermore beyond multiple losses in a court of law ample information is available. Nobody with a brain thinks OJ was innocent or feels bound to disregard for instance the book where he describes the crime called "If I did it".
> Also, history is against you, Microsoft was, and still is very profitable company.
How is history against me? IBM literally helped the Nazis categorize their population so they could exterminate millions of people and the people who helped make those decisions didn't cease to exist in 1945 on indeed in 1955 and they were and are worth of critique even if it would be nonsensical now to impose that judgement on people who born decades after the war. We can both remember AND be reasonable.
History by definition is the things that happened. The fact that it tends to forgot the bad things done by people who later did well for themselves isn't "history" its a collective dementia a mental defect which keeps us making the same mistakes. An actual appreciation for history would suggest a commitment to objective memory not white washing.
> I have been 100% Linux user since many years and have contributed to a GNU project
This is the software equivalent of conspicuously announcing that you have a black friend. You needn't as nobody is suggesting you have insufficient credibility. What's happened is you wrote some fairly inflammatory next to something mundane that is reasonably considered and most people have ignored the mundane thing because you set your apple pie adjacent to a flaming bag of poo and when everyone mentioned the shit you have followed with a bunch of bad explanations for the poo and ill considered arguments so we are still talking about the smell of shit instead of eating pie together.
That's a false claim. That code was in a beta and never shipped. You're just spreading FUD..
Similarly to how GPU vendors are incentivized to patch their drivers to fix bugs in a popular game release because the bugs might be blamed on the vendor instead of the dev.
The year before Windows 7 came out I was working at a company (DivX ;-) making Windows software. We were getting contacted by different testing groups at Microsoft constantly. Some weeks three different people might contact me. Somehow they found my phone number? It didn't seem very efficient, but it was clear that they were allocating huge resources to this.
They found unbelievably nuanced bugs (their QA was better than ours...). They wanted to know when we were going to have a fix by. They wanted to make sure they didn't have a Vista repeat. Vista SP1 was actually quite stable, but it was too late for the Vista brand already.
With Windows 7 it seemed clear that the thing they cared about was: the software their users actually use still works after the update. Right or wrong, it was very user centric, because what user likes for their software to break? Nobody cares why.
That isn't going to be repeatable for pretty much any other software company other than a FAANG, and certainly not of open source projects, not even Linux. People don't pay enough to open source for that kind of support.
We then started hosting some patches on Compuserve, GEnie and Prodigy.
Counterpoint: The PPC-to-Intel version of Rosetta was licensed technology (QuickTransit); Apple was undoubtedly paying for it, possibly even per user, so there were financial reasons for them to get users off of it ASAP.
Rosetta 2 was developed in-house by Apple, so there isn't the same hard timeline to get users to stop using it. I wouldn't expect it to survive long beyond support for running the OS on x86, though.
Even if the support for running x86 Mac GUI apps along with x86 macOS, they might still keep the technology around for docker, linux VMs, etc.
It's generally not a huge issue in Linux, because most of the software you use day to day is open source and probably maintained. The real problem children, across all operating systems, is proprietary video games. They're closed source, unmaintained, and their cultural value makes them highly desired targets for ongoing compatibility and preservation.
There are plenty of userspace ABIs that are extremely stable, including whaever you need to run a game (like the C runtime). There are also APIs without stability guarantees (like the C++ standard runtime). A lot of games that no longer work depend on some of the latter libraries. There are also ABI bugs, no compatibility is perfect, but those usually do get fixed when found unless doing so would break more programs.
> Some applications designed for X still have broken features in Wayland, and likely won't be fixed without new versions of said apps because making Wayland compatible would break the entire security model.
That's not a long term compatibility problem but using a zero trust mobile phone security model on a desktop problem. That security model should be broken and moved to /dev/null where it belongs.
But really at some point you are going to need compatibility layers anyway. We already have Wine with great support for old Windows apps, there is nothing preventing something similar for legacy Linux on modern Linux emulation - except a lack of interest because there really aren't that many Linux-only legacy applications.
They can be distributed packaged with the requirements (Wayland and X still would be an issue) but things like snaps of flatpacks solve that.
Linus said that the userspace API to the kernel should be stable, which it mostly is. But a GNU/Linux system contains a lot more APIs (in userspace).
You will get what you want out of the regular branch, and even more out of the Extended Support Release branch.
As for Windows rebooting out of nowhere: Get a Professional or Enterprise license and turn autoupdates off via Group Policy and your problems are solved.
Anyways for any sensible people, yes, Nightly is a branch specifically for testing and evaluating, doesn't mean you have to brick peoples browsers after some time when you push an update (again, back when I used it that was the behavior, according to a different comment it might be different now), to force a restart.
"As for Windows rebooting out of nowhere: Get a Professional or Enterprise license and turn autoupdates off via Group Policy and your problems are solved.", yes, I already addressed this and mentioned this solution, but again, that doesn't change the fact that it's wrong in the first place, maybe actually read the comment you are replying to?
This is true for me on both Windows (and my user is part of the Administrator group, thus can write to a global c:\Program Files install) and Linux (and Firefox is installed to a directory in $HOME to simplify the process of non-packaged binary management).
Now, I also have Firefox (stable) installed as a .deb (to fulfill the browser dep). If the .deb gets upgraded by apt, that Firefox suddenly bricks itself until I restart. And this is intentional, btw, given how Firefox interacts with itself to do process isolation.
Everything I say here has been true for roughly the past decade.
Project Treble has made Android a pseudo microkernel with stable ABI for drivers.
However Google has decided it is still up to OEMs to decide if driver are to be shipped or not.
With no legal enforcement for accessing Google services, OEMs rather sell updated hardware.
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.
Ben has a Compaq laptop that is Vista capable. It takes upwards of three minutes, I kid you not, of blank screen to get a UAC prompt for elevated access request. And those were very common with Vista.
Randy has a nice (and expensive) desktop and thinks windows Vista is just fine and all computers should upgrade to it (college computers still has Windows XP and there was no plan to upgrade existing computers to visits that I knew of).
They both have wildly different opinions of Windows Vista.
https://arstechnica.com/gadgets/2008/03/the-vista-capable-de...
I’m not aware of 64-bit Windows being able to run 32-bit DPMI DOS apps natively, I think those still required NTVDM.
Pretty sure you are right. As I think that is what setup the interrupts for it. Win9x did it very differently and would basically just put command.com back in charge of stuff to sort of make it work with a sys file. NT with DPMI programs was usually very hit or or miss (more miss). If they did not play just right with windows the thing would just crash out.
Think there might be a win11 32 bit out there. But nothing that MS sells to normal end customers. But my brain may be playing tricks on me and I am confusing different articles I have read. But that would probably be some sort of weird kiosk ODM build. Not what most normal people would have (like in that post).
https://en.m.wikipedia.org/wiki/Virtual_8086_mode
Intel is proposing to remove 16-but support entirely:
https://www.intel.com/content/www/us/en/developer/articles/t...
> CPU Emulator
> 64-bit Windows cannot modify LDT(NtSetInformationProcess(,ProcessLdtInformation,,) always returns error)
They would have had to replace/extend WoW with an architecture emulator. Raising the development/support complexity quite a bit for little gain (few people that use Windows 11 are running DOS or Win16 applications today, beyond retro gamers who use DOSBox anyways).
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)
Other core components that makes up most Linux distros (e.g. libc, gtk, libc, curl, ssl etc) however do not.
that's interesting, can you share bit more details/links?
Preventing poorly-written software to be added to the kernel is a Good Thing. The system is working as planned.
I have an engineering background and then pivoted into managements science, and the difference in perspectives in the two fields is really obvious.
Anyone who has ever been interested in having someone else be able to run their program has figured out a long time ago that you have to ship your dependencies for them to be able to do so.
Shared libraries have nothing to do with Linux. They are an entirely userspace concept.
Or something was compiled without some option for unknown reasons so you're just SOL unless you want to compile stuff yourself.
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!
Win32s - October 1992.
And I was off by one Windows NT version, it was already based on 3.51, not 4.0.
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.
(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.)
https://bcs.wiley.com/he-bcs/Books?action=resource&itemId=04...
Check out appendix C for details on windows 2000 architecture or this which should link to the pdf.
https://higheredbcs.wiley.com/legacy/college/silberschatz/04...
Windows Vista is part of the Windows NT lineage, specifically NT 6.0.
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.
Maybe it will open eyes for people who for some reason acted as if Windows internals were some outdated tech mess just because Windows did some questionable choices when it comes to UI/UX
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.
> Why was rustup slow (3m30s to install (not including download time)) in early 2019 on Windows, and why isn't it slow (14s to install) now?
>Early in 2019 I was developing some things in Rustlang on Windows, got frustrated at the performance of rustup (the installer for rust) and looked for bug. I found one which blamed a combination of NTFS, small files and anti-virus software for the problem. This wasn't an entirely satisfactory answer to my mind. Fast forward a bit, and with a combination of changes to rustup and to Windows itself and rustup is now pleasantly usable.... which also improved performance for rustup on NFS mounted home directories.
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.
You could give me the best kernel in the world, if I end up reading a file whenever I push a pixel to the screen, my performance will be dogshit. Windows's performance problems are not due to the kernel (or rather, not due to problems/bugs: some performance issues are just a choice. See NTFS's dreadful performance with Git: NTFS simply wasn't thought out for having thousands of very small files all being touched at the same time.)
I remember Windows uses a O(N^2) scheduler so the system slows down when it has a few thousand processes. Would that count as a performance issue in the kernel?
Could you count it as a performance issue in the kernel ? Maybe. But really, you're mostly hitting an issue in what it's built to do. Windows really likes two things:
* don't spawn subprocesses
* please do your I/O in one huge batch and thank you.
The average Windows machine will barely have 100 processes running. I have 184 right now, and I run a lot of crap. This goes directly contrary to the philosophy of many UNIX programs: create a shitload of processes, fork everywhere, and write tiny files all the time.
I wouldn't complain about a hammer not working well if I'm using the handle to nail things. Sure, it would be nice if it also worked there, but it's not exactly made for that either, and for good reason. POSIX fork() being such a can of worms is half the reason that WSL1 was abandoned. Windows does not have the internal machinery to do that, because it wasn't built for that.
The path contains the phrase "ntbin". It was compiled for NT.
Windows has IPC, but doesn't have as heavy of an influence from the Unix philosophy, and Android seems to have even less. More stuff is just built into the OS, it's always going to be there, probably for 20 years.
In practice it just isn't an issue, because competent application developers don't tie themselves to particular versions of libraries, and competent library developers don't make gratuitous backwards-incompatible changes.
Nobody is forcing you to depend on incompetently-written malware like GTK+.
I think that is the point being made. This exe is cherry picked as the oldest working exe, it isn't like every 30 year old exe in that folder still works.
Because an old, out of date application is not available, there is a viable market for a new, up-to-date application that serves the same purpose.
The reality is that on the Apple platforms these ancient, obsolete applications are not available and instead there are new, modern, better applications because there is a market for them. While on the Windows platform it’s a big, inconsistent insecure mess because everyone is clinging to obsolete, unsupported software that is barely good enough.
By the way, keep pressing that button you think is the disagree button!
It’s not worth living in the past because some hypothetical users want to cling to it. It’s worth promoting innovation because innovation is replacing old things with better new things.