4 ms·
One of the big advantages Windows had on the desktop is the absolutely fanatical commitment to backwards compatibility. While this affected purity, it gave busi
by RcouF1uZ4gsC 6y ago
One of the big advantages Windows had on the desktop is the absolutely fanatical commitment to backwards compatibility. While this affected purity, it gave businesses the assurance that the software they owned would still continue to work.
- Arainach 6y agoHas, not had. The vast majority of things still work flawlessly, and Microsoft continues to invest serious efforts in this area. I don't have any 32-bit programs on my computer which don't run on Windows 10, and I have plenty of older Win9x-era EXEs of various tools from developers which don't exist any more.
- sterlind 6y agoFun fact: You can still run 16-bit programs on 32-bit Windows 10!
- swiley 6y agoHow hard is it to install 32-bit windows 10 on a modern computer? I wouldn’t want to run that on an actual 32-bit only machine.
- kirb 6y agoIt’ll work, may have to disable secure boot/enable legacy BIOS mode though. Of course you’ll be limited to 4GB RAM and there may be software you use that’s gone 64 bit-exclusive in the past few years.
- exikyut 6y ago> you’ll be limited to 4GB RAM This made me curious, so I did a bit of digging, and found https://docs.microsoft.com/en-us/windows/win32/memory/physical-address-extension https://docs.microsoft.com/en-us/windows/win32/memory/physic... (quoted out of order for simplicity): > Windows automatically enables PAE if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB. If the computer does not support hardware-enabled DEP or is not configured for hot-add memory devices in memory ranges beyond 4 GB, PAE must be explicitly enabled. > PAE does not change the amount of virtual address space available to a process. Each process running in 32-bit Windows is still limited to a 4 GB virtual address space. So, TL;DR, what you said :). But I'm glad I checked!
- bcaa7f3a8bbc 6y agoUnder PAE, each process is still limited to a 4 GiB address space, but the total usable physical memory is extended beyond 4 GiB. Unfortunately, PAE on Windows is a sad story. Unlike what the knowledge base said, in practice, you cannot use PAE for this purpose on Windows. Officially, PAE is only supported on Windows Server, and unusable on desktops. Technically it's supported and almost always activated by Windows (since PAE is needed for the NX bit / DEP). But on desktop systems, Microsoft intentionally crippled PAE by locking the maximum memory to 4 GiB by a software license restriction [0]. Microsoft didn't do it because it wanted to force you to buy licenses, but due to compatibility problems, especially, all types of device drivers are problematic. Using more memory requires patching the kernel to bypass this license restriction, with unpredictable consequences due to incompatibilities. TL;DR: PAE on Windows is practically useless. [0] https://en.wikipedia.org/wiki/Physical_Address_Extension#Microsoft_Windows https://en.wikipedia.org/wiki/Physical_Address_Extension#Mic...
- Dylan16807 6y agoSo some important notes here: * PAE is technically enabled on most machines, but only for side effects like DEP, and there's a software lock on using more than 4GB memory. * Via either spending lots of money or patching some files, you can get a 32-bit version of windows to use 64GB of memory. As long as your drivers don't explode. * "4GB virtual address space" is a bit misleading. A normal 32-bit process can only use 2GB on 32-bit windows. (or 3GB if you change some settings) The upper part of the address space has to be reserved for the kernel. If you want the entire 4GB for your process, you have to run it on 64-bit windows. As long as you can make it work, getting windows to recognize more memory despite per-process caps is a massive improvement and "limited to 4GB RAM" really undersells it.
- im3w1l-alt 6y agoModern processors still know how to run 16 bit code.
- Dylan16807 6y agoThe issue is drivers, not the CPU.
- badsectoracula 6y agoWhile it isn't Microsoft's work (and Wine has proven that it is technically run most of 16bit programs natively on 64bit), there is Otya128's WineVDM port to Windows[0] that can run 16bit applications in an emulated 386 by stubbing 16bit calls to 32bit ones (so it also relies on the existing Windows backwards compatibility). Some examples are https://i.imgur.com/r5aQNyJ.png https://i.imgur.com/r5aQNyJ.png - Smalltalk Express https://i.imgur.com/W9ES2fg.png https://i.imgur.com/W9ES2fg.png - Delphi 1 https://i.imgur.com/VLSglAK.png https://i.imgur.com/VLSglAK.png - Windows 1.0 port of WineMine https://i.imgur.com/OLq2gLm.jpg https://i.imgur.com/OLq2gLm.jpg - The Exile series of RPGs https://i.imgur.com/e26mqWP.png https://i.imgur.com/e26mqWP.png - MicroLathe (though that one does a segfault every time it renders... but it catches it and allows continuing use of the program) While these programs are fun to play around with (especially Smalltalk Express), another use for this is to run the setup of older (32bit) applications that used a 16bit stub (Microsoft does have a few replacement stubs for some very popular installers but there are many other - and other versions - that are not there... and funny enough, AFAIK this project relies on the code Microsoft added to check for 16bit installers to run any 16bit program :-P). [0] https://github.com/otya128/winevdm/ https://github.com/otya128/winevdm/
- Nursie 6y ago> One of the big advantages Windows had on the desktop is the absolutely fanatical commitment to backwards compatibility. OS/360 would like a word... ;)
- raverbashing 6y agoIs it actual binary compatibility? Or it is something higher-level? (to be honest going from DOS to Windows is a different problem, though that doesn't justify the atrocities shown in the document :) )
- Nursie 6y agoThey do have a binary backward compatibility date sometime in the 1960s, possibly 1964. But from what little I remember from my intro-to-mainframes day at big blue many years ago, I think it's like some sort of multi-layered emulation now, to run code that's that old. But your "Hello World" program built on OS/360 released in 1964 will still run on modern Z/OS, or so I'm told. Of course they're not desktop systems! (I'd hate to see the desk...)
- gpderetta 6y agoOS/360 on a Desktop???
- Nursie 6y agoWell, with Hercules you could do :) But no, as I said below, I'd hate to see the desk!