sistema de tempo de execução e camada compatível

1
  1. Eu queria saber se o tempo de execução sistema e camada compatível são a mesma coisa? Ambos parecem para ser algum software, executando de que permite que algum outro software correr sobre eles. Links para a Wikipedia para os dois conceitos foram fornecidos acima.
  2. As duas máquinas virtuais ? O artigo da Wikipedia para virtual máquina menciona que o tempo de execução sistema é um tipo de máquina virtual.
  3. Por que o Cygwin é considerado um camada compatível como seu tipo em seu Artigo da Wikipédia ? É um emulador do sistema operacional Linux e / ou um tempo de execução sistema?
por Tim 02.06.2011 / 03:23

1 resposta

3

Embora pareça haver muitas semelhanças, existem algumas diferenças importantes:

Um bom exemplo de um Runtime System seria a Java Virtual Machine, que fornece um ambiente consistente de plataforma cruzada para o código de byte Java [compilado].

Um bom exemplo de uma Camada de Compatibilidade seria o WINE, que permite que os usuários executem aplicativos Windows não modificados diretamente no Linux e no Unix. Em comparação com o WINE, as camadas de compatibilidade também podem ser muito pequenas, como uma única biblioteca que a base de código principal usa para acessar recursos específicos do SO (por exemplo, abrir um arquivo, se comunicar pela Internet etc.) que fornecem uma API consistente para que o aplicativo efetivamente oculte todas as diferenças específicas do SO.

A desvantagem de um ambiente de tempo de execução é que todo o ambiente deve estar disponível para qualquer código que esteja sendo executado, o que pode exigir muito esforço de desenvolvimento.

A desvantagem de uma Camada de Compatibilidade é que ela não necessariamente fornece consistência e pode ser mais difícil de depurar.

A vantagem de um ambiente de tempo de execução é que, depois de serem portados para uma nova plataforma, os aplicativos serão executados sem modificação.

A vantagem de uma Camada de Compatibilidade é que, para suportar uma nova plataforma, apenas uma nova camada (ou conjunto de camadas) precisa ser criada, e o aplicativo principal pode ser compilado para a nova plataforma de destino com mudanças mínimas.

A virtualização é como um Runtime Environment extremamente extenso, mas o diferente é que um conjunto de instruções da CPU (e quaisquer dispositivos necessários) estão sendo virtualizados ou emulados muito bem.

    
por 02.06.2011 / 04:54