Un .NET EXE destinato a x86 verrà eseguito su chip AMD?
-
10-07-2019 - |
Domanda
Se scelgo come target la piattaforma x86 per la mia app .NET, funzionerà correttamente su chip AMD? So che funzionerà con i chip Intel e che Vista 64 ha la capacità di eseguire app x86 in una modalità speciale, ma non so quanto sia hardware e quanto sia il sistema operativo.
L'ho provato su Vista 64 con un chip Intel e funziona perfettamente, ma non ho una macchina AMD da testare.
Soluzione
Sì, sono binari compatibili, altrimenti non sarebbero sostituibili reciprocamente :)
A meno che tu non intenda IA64 vs AMD64 - quelle sono architetture incompatibili.
Altri suggerimenti
Sì, funzionerà ma funzionerà come un processo a 32 bit contro uno a 64 bit. Il livello di astrazione viene eseguito a livello di sistema operativo introducendo un sottosistema. Si chiama Wow64 (Windows su Windows 64). Ciò consente l'esecuzione a 32 bit di processi nativi su una macchina a 64 bit.
Si interromperà solo se si esegue l'integrazione del kernel di basso livello. Probabilmente qualcosa che non stai facendo con un'app .Net.
Funzionerà benissimo
Questo non ha nulla a che fare con Intel o AMD, funziona su tutti i marchi della stessa architettura hardware. Le applicazioni a 32 bit possono essere eseguite su sistemi operativi a 32 bit e su sistemi operativi a 64 bit. Le applicazioni a 64 bit funzionano solo su sistemi operativi a 64 bit (e hardware a 64 bit).
La chiave qui è che il codice .NET ha come target il CLR, quindi qualsiasi problema a livello di processore dovrebbe essere coperto lì ... Non lo so per certo, ma credo che ci siano più versioni del CLR per x86 / 64.