Una máquina virtual es un tipo especial de software cuya misión es separar el funcionamiento del ordenador de los componentes hardware instalados.
Esta capa de software desempeña un papel muy importante en el funcionamiento de los lenguajes de programación, tanto compilados como interpretados.
Con el uso de máquinas virtuales podremos desarrollar y ejecutar una aplicación sobre cualquier equipo, independientemente de las características concretas de los componentes físicos instalados. Esto garantiza la portabilidad de las aplicaciones.
Las funciones principales de una máquina virtual son las siguientes:
- Conseguir que las aplicaciones sean portables.
- Reservar memoria para los objetos que se crean y liberar la memoria no utilizada.
- Comunicarse con el sistema donde se instala la aplicación (huésped), para el control de los dispositivos hardware implicados en los procesos.
- Cumplimiento de las normas de seguridad de las aplicaciones.
CARACTERÍSTICAS DE LA MÁQUINA VIRTUAL
- Cuando el código fuente se compila se obtiene código objeto (bytecode, código intermedio).
- Para ejecutarlo en cualquier máquina se requiere tener independencia respecto al hardware concreto que se vaya a utilizar.
- Para ello, la máquina virtual aísla la aplicación de los detalles físicos del equipo en cuestión.
- Funciona como una capa de software de bajo nivel y actúa como puente entre el bytecode de la aplicación y los dispositivos físicos del sistema.
- La Máquina Virtual verifica todo el bytecode antes de ejecutarlo.
- La Máquina Virtual protege direcciones de memoria.
Capacidad de un programa para ser ejecutado en cualquier arquitectura física de un equipo.