Camada de compatibilidade
Uma camada de compatibilidade é uma interface de software que permite que aplicativos escritos e compilados para um sistema operacional ou uma arquitetura de hardware sejam executados em um sistema host diferente. Ela recebe chamadas de API e outras funções do sistema projetadas para um ambiente e as traduz em chamadas que o sistema host consegue entender.
As camadas de compatibilidade podem desempenhar uma função semelhante à emulação e à virtualização, permitindo que softwares escritos para um ambiente por exemplo, o (Windows em um processador x86) sejam executados em um sistema operacional diferente com hardware semelhante (Linux em um processador x86) ou em um sistema operacional semelhante com uma arquitetura de hardware diferente (Windows em um processador ARM). Elas fazem isso interceptando todas as chamadas de API do sistema que o programa tenta fazer para seu ambiente original e convertendo-as nas chamadas equivalentes para o novo ambiente host.
A execução de software em uma camada de compatibilidade geralmente usa menos recursos do sistema do que emular outro ambiente ou executar uma máquina virtual. No entanto, alguns softwares podem apresentar erros ou exigir configuração adicional para funcionar corretamente ao usar uma camada de compatibilidade.
Comparação com emulação e virtualização
Emuladores, virtualização e camadas de compatibilidade são frequentemente usados para executar softwares de outro ambiente. Cada método realiza essa tarefa de uma maneira diferente.
Um emulador usa software para recriar o hardware e o software de um dispositivo, emulando todo o ambiente. Como a emulação de dispositivos de hardware em software exige muitos recursos do sistema, um sistema host precisa ser significativamente mais rápido que o hardware emulado para alcançar um desempenho semelhante. Uma camada de compatibilidade destinada a traduzir entre duas plataformas de hardware incluirá um emulador de hardware, usando-o apenas quando necessário em vez de emular continuamente todo o ambiente.
Uma máquina virtual simula um computador inteiro no hardware da máquina host. Ela executa uma cópia de um sistema operacional e usa uma camada de software para traduzir chamadas de hardware virtualizado para o hardware da máquina host. Uma camada de compatibilidade traduz apenas as chamadas necessárias, fazendo isso sem simular chamadas de hardware ou software de que não precisa.
Teste seus conhecimentos