Livello di compatibilità
Un livello di compatibilità è un'interfaccia software che consente alle applicazioni scritte e compilate per un sistema operativo o un'architettura hardware di eseguire su un sistema host diverso. Riceve le chiamate API e altre funzioni di sistema progettate per un determinato ambiente e le converte in chiamate comprensibili dal sistema host.
I livelli di compatibilità possono svolgere una funzione simile a quella dell'emulazione e della virtualizzazione, consentendo al software scritto per un ambiente ad esempio (Windows su un processore x86) di funzionare su un sistema operativo diverso con hardware simile (Linux su un processore x86) oppure su un sistema operativo simile con un'architettura hardware diversa (Windows su un processore ARM). A tale scopo, intercettano ogni chiamata all'API di sistema che il programma tenta di effettuare verso l'ambiente originale e la convertono nella chiamata equivalente verso il nuovo ambiente host.
L'esecuzione del software in un livello di compatibilità spesso utilizza meno risorse di sistema rispetto all'emulazione di un altro ambiente o all'esecuzione di una macchina virtuale. Tuttavia, alcuni software possono riscontrare errori o richiedere una configurazione aggiuntiva per funzionare correttamente quando si usa un livello di compatibilità.
Confronto con emulazione e virtualizzazione
Emulatori, virtualizzazione e livelli di compatibilità vengono spesso utilizzati per eseguire il software di un altro ambiente. Ogni metodo svolge questo compito in modo diverso.
Un emulatore utilizza il software per ricreare sia l'hardware sia il software di un dispositivo, emulando l'intero ambiente. Poiché l'emulazione dei dispositivi hardware nel software richiede notevoli risorse di sistema, per ottenere prestazioni simili un sistema host deve essere significativamente più veloce dell'hardware emulato. Un livello di compatibilità progettato per effettuare la conversione tra due piattaforme hardware include un emulatore hardware, utilizzandolo solo quando necessario invece di emulare costantemente l'intero ambiente.
Una macchina virtuale simula un intero computer sull'hardware della macchina host. Esegue una copia di un sistema operativo e utilizza un livello software per convertire le chiamate all'hardware virtualizzato nelle chiamate all'hardware della macchina host. Un livello di compatibilità converte solo le chiamate necessarie e lo fa senza simulare le chiamate hardware o software di cui non ha bisogno.
Metti alla prova le tue conoscenze