Couche de compatibilité
Une couche de compatibilité est une interface logicielle qui permet à des applications écrites et compilées pour un système d’exploitation ou une architecture matérielle de s’exécuter sur un autre système hôte. Elle reçoit les appels API et les autres fonctions système conçus pour un environnement, puis les traduit en appels que le système hôte peut comprendre.
Les couches de compatibilité peuvent remplir une fonction similaire à l’émulation et à la virtualisation en permettant à des logiciels écrits pour un environnement par exemple, (Windows sur un processeur x86) de s’exécuter soit sur un autre système d’exploitation doté d’un matériel similaire (Linux sur un processeur x86), soit sur un système d’exploitation similaire doté d’une architecture matérielle différente (Windows sur un processeur ARM). Pour cela, elles interceptent chaque appel d’API système que le programme tente d’effectuer vers son environnement d’origine et le convertissent en appel équivalent vers le nouvel environnement hôte.
L’exécution de logiciels dans une couche de compatibilité utilise souvent moins de ressources système que l’émulation d’un autre environnement ou l’exécution d’une machine virtuelle. Toutefois, certains logiciels peuvent rencontrer des erreurs ou nécessiter une configuration supplémentaire pour fonctionner correctement avec une couche de compatibilité.
Comparaison avec l’émulation et la virtualisation
Les émulateurs, la virtualisation et les couches de compatibilité sont souvent utilisés pour exécuter les logiciels d’un autre environnement. Chaque méthode accomplit cette tâche d’une manière différente.
Un émulateur utilise un logiciel pour recréer à la fois le matériel et les logiciels d’un appareil afin d’émuler l’environnement entier. Comme l’émulation de périphériques matériels par logiciel nécessite des ressources système importantes, un système hôte doit être nettement plus rapide que le matériel émulé pour atteindre des performances similaires. Une couche de compatibilité conçue pour assurer la traduction entre deux plateformes matérielles inclut un émulateur matériel, mais ne l’utilise qu’en fonction des besoins au lieu d’émuler en permanence l’environnement entier.
Une machine virtuelle simule un ordinateur entier sur le matériel de la machine hôte. Elle exécute une copie d’un système d’exploitation et utilise une couche logicielle pour traduire les appels au matériel virtualisé en appels vers le matériel de la machine hôte. Une couche de compatibilité traduit uniquement les appels dont elle a besoin, sans simuler le matériel ou les appels logiciels dont elle n’a pas besoin.
Testez vos connaissances