There are ancient 32-bit things that still run on modern operating systems, that you simply can't get a 64-bit version of. On my Linux machine, one specific such thing is the Brother printer driver. Brother laser printers are awesome. Cheap, reliable, inexpensive aftermarket toner etc. But to make them work (in my experience, and certainly for the scanner function) you need their binary driver and it has not (last I looked) been updated in years, and it's 32-bit. No problem, install the 32 bit compatibility libraries and go.
On a pure 64 bit CPU, unless the 32-bit compatiblity problem is solved with emulation at the OS level, all this old 32-bit stuff is history. Or does "cutting 32-bit mode" not mean that, i.e. 32-bit binaries still run in the 64 bit mode?
> On a pure 64 bit CPU, unless the 32-bit compatiblity problem is solved with emulation at the OS level, all this old 32-bit stuff is history.
And you've already answered your own question. Virtualization and emulation is precisely how this will be cared for. Heck, in a lot of cases, that's already how old 16- and 32-bit software is run, as you also need associated compatible operating systems, not to mention clock timings and so forth in the case of games, and it's a lot easier and more accurate to just fire up DOS or Windows 3.11 in a VM than to run the code natively with OS-level compatibility.
32 bit windows software is not emulated, you call a 32-bit API function and it forwards to 64-bit mode at the system call level. Basically instead of SYSENTER you proceed back to 64-bit mode to perform the system call.
The article says they are dropping support for 32 bit OS's but not 32 bit programs, essentially. You'll also still be able to emulate 32 bit OS's. they just can't own the hardware at boot.
Intel's press release has a chart explaining that 32-bit compatibility will still be possible in Ring 3, but not in Ring 0. Not sure what this entails for 32-bit kernel drivers since Linux uses a mix of Ring 0 and Ring 3. But I assume this means that 32-bit user-mode applications and some drivers will still work.
> You will also still be able to run x86-32 binaries and apps in ring three on your 64-bit OS in ring zero – so long as the operating system provides the appropriate libraries and APIs, of course.
The traditional approach to proprietary printer drivers is to found a software movement that reimplements the entire operating system from scratch, and invent licenses that prevent distributors from keeping their changes to the system secret.
On a pure 64 bit CPU, unless the 32-bit compatiblity problem is solved with emulation at the OS level, all this old 32-bit stuff is history. Or does "cutting 32-bit mode" not mean that, i.e. 32-bit binaries still run in the 64 bit mode?