Perché un sistema operativo a 64 bit non può essere eseguito su una CPU a 32 bit, ma un sistema operativo a 32 bit funziona su una CPU a 64 bit?
Perché un sistema operativo a 64 bit non può essere eseguito su una CPU a 32 bit, ma un sistema operativo a 32 bit funziona su una CPU a 64 bit?
Risposte:
Presumo che stiamo parlando di PC standard qui.
La maggior parte dei processori a 64 bit, in particolare quelli di Intel e AMD, hanno il set di istruzioni completo a 32 bit e le estensioni a 64 bit, in modo che possano eseguire software a 32 bit.
Tuttavia, i processori a 32 bit non hanno un set di istruzioni a 64 bit. Molti sono stati creati anche prima che il set di istruzioni a 64 bit fosse definito, quindi non è possibile che lo implementassero correttamente, anche emulando. Semplicemente non capiscono quella lingua.
Le CPU a 64 bit supportano qualsiasi lunghezza di word fino a 64 bit, quindi in teoria, su esse verranno eseguiti sistemi operativi a 8, 16, 32 o 64 bit. Le CPU a 32 bit non supportano la lunghezza della parola a 64 bit, quindi è possibile eseguire solo il software & lt; = 32 bit (inclusi i sistemi operativi a 32 bit).
Perché non riesci a eseguire Windows sul tuo vecchio Atari? Hardware e processori incompatibili.
x86-64 dovrebbe essere considerato completamente diverso da x86 perché è molto diverso dal punto di vista del kernel e del codice macchina. L'unica cosa che condividono veramente è il codice di bootstrap (dall'avvio a 16 bit, per arrivare a 64 bit devi [di solito] andare prima a 32 bit) e la modalità di compatibilità a 32 bit e le estensioni della CPU comuni come SSE. Oltre a questo, i processori sono completamente diversi da come vengono fatte le applicazioni in codice macchina.
È perché il processore nel caso di una macchina a 32 bit non può gestire l'elaborazione a 64 bit, ma un processore a 64 bit è più che in grado di gestire 32 bit in quanto può gestire 64 bit alla volta.
Un sistema operativo a 64 bit è programmato con i registri a 64 bit in mente. Una CPU a 32 bit ha solo registri a 32 bit.
Ci sono molte altre ragioni per questo, oltre ai soli registri.
Un sistema operativo a 64 bit si basa sulle caratteristiche del processore di un processore a 64 bit.
Non è possibile indicare a un processo a 32 bit di eseguire un'operazione sul registro a 64 bit se non esiste.
Mentre i processori a 64 bit hanno tutto ciò che il 32 bit ha, quindi può essere fatto.