4 ms·
> Microsoft breaking compatibility, more-so post Windows 7 IIRC, there have been several instances of this between releases, less so from the user application
by jonathonf 10y ago
> Microsoft breaking compatibility, more-so post Windows 7
IIRC, there have been several instances of this between releases, less so from the user application perspective, but rather from the driver model.
Windows 3.1 to Windows 95 (16- to 32-bit), Windows ME to Windows 2000 (NT kernel), Windows XP to Vista (UAC etc.) each saw various issues with device drivers.
The extent of user application backwards-compatibility is impressive, with only Windows 10 removing 16-bit application support (boo). For example, even now it's possible to double-click on the application icon at the left-hand of the window title bar to close the application - à la Win 3.1.
> The only mistake Microsoft made was not doing rolling releases
I think they're 'fixing' that with Windows 10.
- dtech 10y ago> The extent of user application backwards-compatibility is impressive, with only Windows 10 removing 16-bit application support (boo) It's still supported on the 32-bit versions of win10! It has never been supported on a 64-bit version of windows though.
- wvenable 10y ago> Windows 10 removing 16-bit application support (boo). CPU's in 64bit mode don't support running code in 16bit mode -- Windows 10 (actually 7) didn't remove support, it never existed to begin with. This is also why 32bit versions of Windows can and do still run 16bit applications.
- pmalynin 10y agoNot exactly true. CPUs in long mode (aka 64 bit) do not have the virtual 8086 mode, so the cannot natively execute real mode code. However, the code segment selector can be configured in such a way as to allow 16 bit protected mode code to be executed, the same way 32 bit code can be executed.
- bdonlan 10y agoThere's also the option to transition to 32-bit protected mode and then go to virtual 8086 mode from there. Or to simply emulate the entire CPU. It was probably just a cost-benefit trade-off in the end.
- raverbashing 10y agoYeah Wasting silicon to emulate some 30+ y.o. architecture makes no sense Intel/AMD could thing about doing a "pure" x64/x32 processor that starts in 32-bit mode mode and leaves everything else to an emulation layer (this could be present on the UEFI only for those customers that are interested in it)
- therein 10y agoSo why is 16bit execution supported on Windows 10 32bit but not on Windows 10 64bit or even Windows XP 64bit?
- wvenable 10y agoIt seems to be this: https://msdn.microsoft.com/en-us/library/aa384249.aspx https://msdn.microsoft.com/en-us/library/aa384249.aspx "The primary reason is that handles have 32 significant bits on 64-bit Windows. Therefore, handles cannot be truncated and passed to 16-bit applications without loss of data."
- dogma1138 10y agoWindows 95 still booted through DOS, pretty much any application that could run on 3.1/3.11 could run on 95, you could run Windows 3.11 from within 95 if you wanted too. Windows ME did not evolve to Windows 2000, Windows ME was a consumer/home operating System based on the same branch as Windows 98. Windows 2000 was a continuation of Windows NT(4) for the enterprise market. Windows XP was the first OS that unified consumer and enterprise versions on the same branch and moved the consumer version to the NT kernel. Windows 10 didn't drop support for 16bit applications, it still is supported on the 32bit version like most people said, Windows XP 64bit couldn't run 16bit application either. This has to do with how the 64bit CPU's work and the lack of 16bit real and IIRC even protected mode. As for general compatibility you can install Windows 3.11 on a machine and upgrade it all the way to Windows 10 and keep your data as long as you go through 95/98 and Windows XP in the middle. There are videos on Youtube where people install 3.1, 3.11, 95, 98, 98SE, ME, XP, Vista, 7 and 10 and keep their data and some settings (computer name, user, my documents, and even a quite a few windows settings ;)) and that is actually quite impressive.