Saltar la navegación

8.- Máquinas virtuales.

Esquema en forma de árbol formado por cuatro rectángulos de colores diferentes. En la parte superior y en el centro un rectángulo blanco en el que se puede leer   “CÓDIGO FUENTE”, del que parte una flecha hacia abajo, a un rectángulo blanco donde se puede leer “CÓDIGO OBJETO”, del que parte otra flecha hacia otro rectángulo de color violeta donde se puede leer “MÁQUINA VIRTUAL” y del que, finalmente, sale otra flecha hacia abajo al cuarto rectángulo donde se puede leer “HARDWARE”. A la derecha del esquema se puede leer la palabra “COMPILACIÓN” seguida de una línea que la une con la flecha que sale del primer rectángulo.

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.

La máquina virtual actúa de puente entre la aplicación y el hardware concreto del equipo donde se instale.