4 ms·
No, it means MacOS will no longer have a 32-bit runtime but this does not prevent the CPU executing in 32-bit mode - just that all system calls have to happen i
by sitharus 9y ago
No, it means MacOS will no longer have a 32-bit runtime but this does not prevent the CPU executing in 32-bit mode - just that all system calls have to happen in 64 bit mode.
Wine will have to be a 64-bit application linked to the 64-bit libraries and do a bunch of thunking and mode switching, but it already does this to support 16-bit applications.
I have no idea how easy this is but the the OS already does it to support 32-bit applications running on the 64-bit kernel.
- shmerl 9y agoWhen Wine runs 32-bit application, it links against 32-bit libraries, including OpenGL. So how would that work in pure 64-bit system? 16-bit is really some special case, I don't know how Wine is doing it, but I suppose it does some special translation.
- sitharus 9y agoThe same way those 32-bit libraries call the kernel now - they marshal the call to 64-bit land. A lot of the user space is compiled separately for performance and to maintain ABI compatibility so this would have to be taken up by a third party. I would expect to see a slowdown but it depends on the exact nature of the changes.
- caf 9y agoYou can only execute in 32-bit mode if the kernel gives you a compatibility-mode descriptor in the GDT, or lets you put one in the LDT. (or you use virtualisation)