Saltar ao contido

Emulador

Na Galipedia, a Wikipedia en galego.
Emulador
Imaxe
 Instancia de
 Subclase de
 Aspecto de
 Uso
Códigos e identificadores
Freebase/m/02p5w Editar o valor en Wikidata
Fontes e ligazóns
BNE: XX552380
Wikidata C:Commons
Image
DOSBox emula a interface de liña de comandos de DOS.

En informática, un emulador é un hardware ou software que permite que un sistema informático (chamado host) se comporte como outro sistema informático (chamado «invitado»). Un emulador normalmente permite que o sistema host execute software ou use dispositivos periféricos deseñados para o sistema invitado. A emulación refírese á capacidade dun programa informático nun dispositivo electrónico para emular (ou imitar) outro programa ou dispositivo.[1]

Visión xeral

[editar | editar a fonte]

Moitas impresoras, por exemplo, están deseñadas para emular impresoras HP LaserJet porque unha cantidade significativa de software está escrito especificamente para modelos HP. Se unha impresora que non é HP emula unha impresora HP, calquera software deseñado para unha impresora HP real tamén funcionará no dispositivo que non é HP, producindo resultados de impresión equivalentes.[2] Polo menos desde a década de 1990, moitos entusiastas e afeccionados aos videoxogos empregaron emuladores para xogar a xogos arcade clásicos da década de 1980 usando o código máquina e os datos orixinais dos xogos dos anos 80, que son interpretados por un sistema da era actual, e para emular videoconsolas antigas.[3]

Un emulador de hardware é un emulador que adopta a forma dun dispositivo de hardware.[4] Algúns exemplos son a tarxeta compatible con DOS instalada nalgúns ordenadores Macintosh da década de 1990, como o Centris 610 ou o Performa 630, que lles permitía executar programas de software para ordenadores persoais IBM PC compatibles,[5] e emuladores de hardware baseados en matrices de portas programables en campo.[6] A tese de Church-Turing implica que, teoricamente, calquera ambiente operativo pode ser emulado dentro de calquera outro ambiente, asumindo que se ignoran as limitacións de memoria. Non obstante, na práctica, pode ser bastante difícil, especialmente cando o comportamento exacto do sistema que se vai emular non está documentado e ten que deducirse mediante enxeñaría inversa. Tampouco di nada sobre as restricións de tempo; se o emulador non funciona tan rápido como o facía usando o hardware orixinal, o software dentro da emulación pode executarse moito máis lentamente (posiblemente activando interrupcións do temporizador que alteran o comportamento).[7]

Comparación coa simulación

[editar | editar a fonte]

A palabra «emulador» foi acuñada en 1963 en IBM[8] durante o desenvolvemento da liña de produtos NPL (IBM System/360), empregando unha «nova combinación de software, microcódigo e hardware».[9] Descubriron que a simulación mediante instrucións adicionais implementadas en microcódigo e hardware, en lugar da simulación por software mediante só instrucións estándar, para executar programas escritos para ordenadores IBM anteriores aumentaba drasticamente a velocidade da simulación. Anteriormente, IBM subministraba simuladores, por exemplo, para o 650 no 705.[10] Ademais dos simuladores, IBM tiña funcións de compatibilidade no 709 e no 7090,[11] para as que proporcionaba ao ordenador IBM 709 un programa para executar programas herdados escritos para o IBM 704 no 709 e, posteriormente, no IBM 7090. Este programa empregaba as instrucións engadidas pola funcionalidade de compatibilidade,[12] para capturar instrucións que requirían un manexo especial; todas as outras instrucións do 704 executábanse igual nun 7090. A funcionalidade de compatibilidade do 1410 só requiría configurar un interruptor de consola, non un programa de soporte.[13]

En 1963, cando se empregou por primeira vez o microcódigo para acelerar este proceso de simulación, os enxeñeiros de IBM acuñaron o termo «emulador» para describir o concepto. Na década de 2000, converteuse en algo común usar a palabra «emular» no contexto do software. Non obstante, antes de 1980, «emulación» referíase só á emulación con asistencia de hardware ou microcódigo, mentres que «simulación» referíase á emulación de software puro.[14] Por exemplo, un ordenador especialmente deseñado para executar programas deseñados para outra arquitectura é un emulador. Pola contra, un simulador podería ser un programa que se executa nun PC, de xeito que se poidan simular nel xogos antigos de Atari. Os puristas seguen insistindo nesta distinción, pero actualmente o termo «emulación» adoita significar a imitación completa dunha máquina que executa código binario, mentres que «simulación» adoita referirse á simulación por ordenador, onde se usa un programa informático para simular un modelo abstracto. A simulación por computadora utilízase en practicamente todos os dominios científicos e de enxeñaría, e a informática non é unha excepción, con varios proxectos que simulan modelos abstractos de sistemas informáticos, como a simulación de redes, que difire da emulación de redes tanto na práctica como na semantica.[15]

Comparación coa virtualización de hardware

[editar | editar a fonte]

A virtualización de hardware é a virtualización de ordenadores como plataformas de hardware completas, certas abstraccións lóxicas dos seus compoñentes ou só a funcionalidade necesaria para executar varios sistemas operativos. A virtualización oculta as características físicas dunha plataforma informática aos usuarios, presentando no seu lugar unha plataforma informática abstracta.[16][17] Nas súas orixes, o software que controlaba a virtualización chamábase «programa de control», pero co tempo empezáronse a usar os termos «hipervisor» ou «monitor de máquina virtual».[18] Cada hipervisor pode xestionar ou executar varias máquinas virtuais.

  1. Duarte, Otto. "Virtualização - VMWare e Xen". UFRJ (en portugués). Consultado o 2026-05-15.
  2. "Printer Emulators". Retro-Printer (en inglés). Consultado o 2026-05-15.
  3. "Welcome to The Official Site of the MAME Development Team". MAME (en inglés). Consultado o 2026-05-15.
  4. Rizzatti, Lauro (2002-08-07). "Hardware emulation for everyone". EE Times (en inglés). Consultado o 2026-05-15.
  5. Knight, Daniel (1994-12-31). "1994: Apple DOS Cards, First Power Macs, System 7.5, and IDE Hard Drives". Low End Mac (en inglés). Consultado o 2026-05-15.
  6. "FPGAEmu: An Introduction to FPGA Emulation". FPGAEmu (en inglés). Consultado o 2026-05-15.
  7. de Araújo, Vítor (2014-04-27). "A tese de Church-Turing" (PDF) (en portugués). UFMG. Consultado o 2026-05-15.
  8. Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology (en inglés). MIT. p. 274. ISBN 0-262-16147-8.
  9. Pugh, Emerson W.; et al. (1991). IBM's 360 and Early 370 Systems (en inglés). MIT. ISBN 0-262-16123-0. pages 160-161
  10. "Simulation of the IBM 650 on the IBM 705" (PDF) (en inglés).
  11. "IBM Archives: 7090 Data Processing System (continued)". www-03.ibm.com (en inglés). 2003-01-23. Arquivado dende o orixinal o 2005-03-13.
  12. "System Compatibility Operations". Reference Manual IBM 7090 Data Processing System (PDF) (en inglés). marzo de 1962. pp. 65–66. A22-6528-4.
  13. "System Compatibility Operations". IBM 1410 Principles of Operation (PDF) (en inglés). marzo de 1962. pp. 56–57, 98–100. A22-0526-3.
  14. Tucker, S. G (1965). "Emulation of large systems". Communications of the ACM (en inglés) 8 (12): 753–61. doi:10.1145/365691.365931.
  15. "Network simulation or emulation?". Network World (en inglés). 2017-09-22. Consultado o 2017-09-22.
  16. Turban, E; King, D.; Lee, J.; Viehland, D. (2008). "19". Electronic Commerce A Managerial Perspective (PDF) (en inglés) (5th ed.). Prentice-Hall. p. 27. Arquivado dende o orixinal (PDF) o 2009-05-21. Consultado o 2021-12-13.
  17. "Virtualization in education" (PDF) (en inglés). IBM. outubro de 2007. Consultado o 2010-07-06.
  18. Creasy, R.J. (1981). "The Origin of the VM/370 Time-sharing System" (PDF) (en inglés). IBM. Consultado o 2013-02-26.

Véxase tamén

[editar | editar a fonte]

Ligazóns externas

[editar | editar a fonte]