Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:aclaraciones

    (Puntos:2, Informativo)
    por SplinterGU (47950) el Martes, 01 Junio de 2010, 02:40h (#1220637)
    prometi que no iba a responder, cierto... :)

    creo que existe una equivocacion, esto no es una maquina virtual de x86 o de un procesador conocido, es una maquina virtual como lo es lua, no hay la traduccion que dices, esto es una maquina de pila, solo que los elementos de la pila y las unidades que se compilan generan valores y codigos (no codigos nativos) de 32bits. Yo no dije que no se puede, sino que esta pensando en instrucciones de 32bits, no es una falla de diseño, porque cuando esto se creo no existian procesadores de 64bits por lo menos no a nivel del usuario normal, y para mantener la compatibilidad se sigue manteniendo la filosofia de 32bits (ahora se entiende lo de "filosofia"?). Como dije, no es que no se pueda hacer, sino que requiere un cambio que implicaria romper compatibilidad hacia atras. Para explicarte un poco mas, bennugd es un conjunto de 2 utilidades, mejor dicho 3, 1) un compilador que genera a partir de un codigo legible un codigo binario con opcodes de la VM y otra info adicional. 2) una libreria, que es la VM, y puede ser usada como engine scripting en cualquier lenguaje, como lo es lua o python. 3) un interprete o ejecutor, que lo unico que hace es llamar a las funcione de carga del binario compilado y luego llamar a las funciones de ejecucion de la VM (ambas funciones se encuentran en la libreria del punto 2).
    No es que no compile ni que no funcione en 64bits, de hecho varios la han probado y compilado y dicen que funciona perfectamente en 64bits, pero tanto Miriam como yo, tenemos dudas de que no pueda dar algun problema si alguna direccion alocada da un valor mas alla de lo que puede contener un dato de 32bits y se intenta almacenar en un registro de 32bits.
    Repito, esto es una maquina virtual como lo es lua o python y asi como estos, no se virtualiza la memoria ni los dispositivos.
    Con respecto a la portabilidad, no es un deseo o sueño, bennugd corre en diversas plataformas, oficialmente estan pc (win/linux en sus variantes), wiz (arm), y hay versiones casi-oficiales que solo se limitan en compilar el proyecto (con cambios menores como algun include extra y cosas asi) y estan corriendo en WII, MAC, GP2X, dingoo, y muchas otras plataformas.
    Espero ahora haya podido explicar un poco mas del asunto.
    Cordiales saludos.
    [ Padre ]
    Puntos de inicio:    1  punto
    Moderación   +1  
    Modificador extra 'Informativo'   0  

    Total marcador:   2  
  • Re:aclaraciones

    (Puntos:1)
    por SplinterGU (47950) el Martes, 01 Junio de 2010, 16:27h (#1220779)
    realmente no es como dicen ningun de los 2, no hay que ver a una VM como un VMWare o un VirtualPC o un VirtualBox, incluso en dichos productos, las VM no pueden emular un procesador diferente, virtualizan.
    olvidense de host y guest, en este caso no existe eso, suguiero que vean el codigo de lua y/o python para entender, la memoria no se virtualiza, la maquina virtual solo atienden a instrucciones de su maquina virtual que nada tiene que ver con el procesador en el que estan corriendo, java tampoco virtualiza la memoria, la memoria en ninguna maquina virtual salvo productos de virtualizacion de un ordenador (como ser VMWare, VirtualPC o VirtualBox) no virtualizan la memoria.
    no se puede encapsular una direccion de 64bits en 32bits, solo tomando la parte menos significativa, porque la parte significativa no es de un valor unico, sino que dicho valor puede ser diferente segun el area de memoria que ocupe.
    el problema es que esto se desprende de DIV, la arquitectura DIV no soporta 64bits (es de DOS) y tampoco los procesadores de esa epoca (salvo algun que otro "monstruo" de la epoca que usaban grandes empresas/entidades bancarias en sus servidores) eran de 64bits.
    no hay miedo en bennu para hacer una maquina virtual de 64bits, solo que la maquina actual es de 32bits, la maquina no implica que el manejo de memoria y demas sea virtualizado, en muchos casos se necesitan manipular direcciones de memoria en la maquina virtual a traves del lenguaje, pero esto no es seguro hacerlo si la aplicacion es de 64bits (aunque en la mayoria de los casos los mallocs no dan direcciones de memoria altas), y eso bajo ningun punto de vista es una falla de diseño, son caracteristicas.
    por favor, recomiendo encarecidamente que estudien los codigos de los productos mencionados (lua, python) si consideran que fenix/bennu no son de confianza y estan mal diseñados, y entenderan un poco mejor las cosas.
    como me gustaria que aparezca Miriam y les explique un poco todo el asunto, ya que confian en ella, nosotros hemos tenido varias charlas tecnicas en privado.
    saludos.
    [ Padre ]
  • 1 respuesta por debajo de tu umbral de lectura actual.