elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda - Concepto de Maquina Virtual
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda - Concepto de Maquina Virtual  (Leído 5,714 veces)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Duda - Concepto de Maquina Virtual
« en: 22 Abril 2012, 22:00 pm »

He estado leyendo un tutorial de ASM muy bueno que me pasaron, y estoy por el principio donde explica conceptos basicos y me explicaron que la virtual machine es como un programa programado en un lenguaje L0 que interpreta el codigo escrito en el lenguaje L1 , que este es mas facil de entender.
Es decir, como Java que tiene su Java Virtual Machine y creo que funciona asi:

- Escribimos el codigo en Java
- Compilamos el codigo escrito a un codigo entendible por la Java Virtual Machine.
- Y la JVM se encarga de pasarlo a codigo maquina.

Con esto ganamos que no importa el procesador que sea, mientras este instalado el JVM en el SO, podran correr las app en Java.

Esto es asi?

Es que si es asi.. en que esta escrito la JVM? a puro 1 y 0 lo dudo xD

Si alguien me explica esto le agradezco muchisimo, tengo mas dudas pero por ahora eso.


----------------------------------------------------------------------------------------
Las otras dudas son depende que me contesten, como que pasa con vb.net entonces, y con lenguajes como C y vb6 que no hay que instalar nada para que corran las apps (cual es en este caso la maquina virtual? el mismo SO? )

Anoto porque despues me olvido xD

Saludos!


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Concepto de Maquina Virtual
« Respuesta #1 en: 22 Abril 2012, 22:36 pm »

La JVM esta en C/C++ y es compilada para cada plataforma soportada. No hay maquina virtual en el caso de lenguajes compilados como C.

http://en.wikipedia.org/wiki/Just-in-time_compilation


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda - Concepto de Maquina Virtual
« Respuesta #2 en: 22 Abril 2012, 23:33 pm »

Bien si, pero en que esta codeada la JVM? tal vez en C ponele.. y lenguajes como C no necesitan de maquina virtual porque se compilan directamente a codigo maquina. El compilador de C se fija que tipo de procesador es para saber de que forma compilar? digo por si lo pasa a ASM o directamente lo pasa a ISA? tal vez tiene que hacer esa verificacion de que tipo de procesador es de todos modos.

Digo lo de verificar porque cada procesador funciona distinto, distintos registros, etc, y segun entiendo C es multiplataforma entonces no entiendo bien el porque.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Concepto de Maquina Virtual
« Respuesta #3 en: 22 Abril 2012, 23:43 pm »

Bien si, pero en que esta codeada la JVM?

Si, la JVM esta en C/C++.

El compilador de C se fija que tipo de procesador es para saber de que forma compilar?

A menos que sea un compilador cruzado siempre compilas a la plataforma en ejecucion, no hay mucha historia ahi ...

digo por si lo pasa a ASM o directamente lo pasa a ISA? tal vez tiene que hacer esa verificacion de que tipo de procesador es de todos modos.

Da igual, assembly no es portable, cada uno esta atado a su procesador.

Digo lo de verificar porque cada procesador funciona distinto, distintos registros, etc, y segun entiendo C es multiplataforma entonces no entiendo bien el porque.

Java es multiplataforma por la maquina virtual que lo interpreta: UN BINARIO, MUCHAS PLATAFORMAS. C es multiplaforma compilando: UN BINARIO POR PLATAFORMA.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda - Concepto de Maquina Virtual
« Respuesta #4 en: 23 Abril 2012, 02:12 am »

Gracias! pero entonces existen compiladores de C especiales para cada tipo de procesador que uses?

Mi gran duda es esa.. que si cada procesador funciona distinto, como hace el compilador o la maquina virtual para interpretar de la forma que tiene que ser para ese procesador especifico.

O el 90% de nosotros usamos procesadores x86? entonces los compiladores son especificos para esos procesadores y listo.
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Duda - Concepto de Maquina Virtual
« Respuesta #5 en: 23 Abril 2012, 02:19 am »

en assembly se llama ensamblar, en C/C++, VB, etc: compilar, si programas para x86 solo correra en ese
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda - Concepto de Maquina Virtual
« Respuesta #6 en: 23 Abril 2012, 02:42 am »

Ya ya, busque lo que me dijiste de "compilador cruzado" y creo que es eso, se encarga de eso mismo y las maquinas virtuales tambien, es decir convierten el codigo a ISA dependiendo el tipo de procesador, luego en mi carrera de ingeniero aprendere como se hace eso pero por ahora esta bien.

Si tengo razon ya entendi, y muchisimas gracias!

Edit: Gracias Raul! ando leyendo firme jaja
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Concepto de Maquina Virtual
« Respuesta #7 en: 23 Abril 2012, 09:37 am »

Gracias! pero entonces existen compiladores de C especiales para cada tipo de procesador que uses?

Si, no son "especiales", son compiladores y punto, los cruzados si son especiales y te permiten compilar para otras plataformas pero un compilador normal se escribe teniendo en cuenta la misma plataforma donde es escrito y sera ejecutado.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Duda - Concepto de Maquina Virtual
« Respuesta #8 en: 23 Abril 2012, 18:19 pm »

Bien, ya entendi, muchas gracias!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Concepto de Maquina Virtual
« Respuesta #9 en: 23 Abril 2012, 18:25 pm »

De nadas.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] Backtrack en máquina virtual
Wireless en Linux
Wofo 3 4,020 Último mensaje 30 Octubre 2012, 05:24 am
por CodeJiyu
Duda sobre maquina virtual « 1 2 »
ASM
Vaagish 12 8,202 Último mensaje 12 Diciembre 2013, 17:59 pm
por Vaagish
Duda clonar máquina virtual
Dudas Generales
ilos28 2 2,666 Último mensaje 17 Octubre 2014, 16:50 pm
por MCKSys Argentina
Máquina virtual duda de concepto
Dudas Generales
Rnovatis 1 1,844 Último mensaje 6 Septiembre 2016, 20:38 pm
por MCKSys Argentina
Duda: Simular en maquina virtual arquitectura ARM android
Dispositivos Móviles (PDA's, Smartphones, Tablets)
AlbertoPerez 0 2,895 Último mensaje 15 Enero 2017, 03:33 am
por AlbertoPerez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines