Básicamente la Máquina Virtual de Java (en ingles Java Virtual Machine) es el núcleo del lenguaje de programación Java, puesto que es imposible ejecutar un programa Java sin tener una JVM implantada en el ordenador.
La máquina virtual de Java se denomina al procesador o entorno virtual que se utiliza para interpretar los bytecodes de los binarios de Java, ya que como sabemos Java se hizo para correr en cualquier plataforma sin recompilar los binarios. De esta manera este entorno virtual se puede obtener para nuestra arquitectura y sistema operativo sin modificaciones a nuestro programa original.
- Podemos entonces generar un binario y este podrá Correr en Linux, MAC OSX, FreeBSD, Solaris, o Windows, y para las arquitecturas disponibles en las que podamos obtener la JVM, como ser AMD64, SPARC, PIV, etc. etc.
- Los bytecodes son un código máquina de bajo nivel, que es ejecutado por la maquina virtual, no por el hardware del ordenador.
La JVM lleva a cabo la emulación del conjunto de bytecodes, bien por un proceso de interpretación o bien mediante un compilador JIT (Just In Time), que convierte el bytecode a código nativo de la plataforma de destino, lo que permite una ejecución mucho más rápida, aunque el inconveniente que tiene es el tiempo que necesita al principio para la compilación.
La principal desventaja de los lenguajes basados en máquina virtual, es que efectivamente son más lentos que los lenguajes completamente compilados, debido a la sobrecarga que genera tener una capa de software intermedia entre la aplicación y el hardware de la computadora. No es lo mismo una aplicación desarrollada en un lenguaje como C o C++, donde el archivo binario que genera el compilador se ejecuta directamente sobre el hardware, que tener que pasarle ese código a la maquina virtual para que lo ejecute el hardware de la maquina. Sin embargo, la gran ventaja de estos, entre muchas otras, es que el código compilado, al no depender de una maquina física en particular, sino de una máquina virtual, puede ser ejecutado en cualquier S.O., siempre que, claro esta, disponga de una maquina virtual.
En la actualidad, existen alternativas a la JVM provista por Sun Microsystems que permiten una velocidad comparable a una aplicación compilada en C++ nativa en la arquitectura, un ejemplo de esto es Kaffe, Kaffe es una máquina de Java OpenSource que puede compilarse sin mayores modificaciones en nuestra arquitectura necesaria y correrá increíblemente más rápida que la distribución estándar de JVM de Sun Microsystems y consumirá muchos menos recursos.
Escrito por → Israel Iglesias
No hay comentarios:
Publicar un comentario