por
pobrecito hablador
el Miércoles, 02 Junio de 2010, 09:02h
(#1220887)
¿Cómo que no? En todos los productos de virtualización precisamente se virtualiza la memoria.
Sino, ¿cómo demonios pretendes arrancar máquinas de diferente número de bits, de diferente direccionamiento o de diferente arquitectura?
Joder, ya sabemos que el direccionamiento de una dirección de 64 bits es distinto que el de 32 bits, pero tú SÍ puedes pedir al sistema operativo que te reserve una zona de memoria contigua y así trabajar cómodamente. Y aunque no lo hagas, siempre puedes mapear a mano tú en tu programa o hacer mil chapuzas que se pueden hacer.
Dices: "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."
A mi juicio, lo que dices no tiene ningún sentido, o no te explicas bien, una de dos. Si necesitas manipular una dirección del guest, ¿cuál es el problema? ¿Qué tiene que ver el malloc del host con el del guest? A ver si me entero, creo que pretendes decir que es que la máquina guest en realidad ejecuta código nativo de 32 bits y no lo habéis hecho portable, por lo que a lo mejor el guest está haciendo un malloc() con Lua o similar y resulta que te devuelve una dirección de 64 bits y luego quizás estás manipulando esa dirección suponiendo que es de 32 bits y a veces te puede cascar si el malloc() te mapea la memoria en diferente parte alta. ¿Van por ahí los tiros o qué?
Re:aclaraciones
(Puntos:0)Sino, ¿cómo demonios pretendes arrancar máquinas de diferente número de bits, de diferente direccionamiento o de diferente arquitectura?
Joder, ya sabemos que el direccionamiento de una dirección de 64 bits es distinto que el de 32 bits, pero tú SÍ puedes pedir al sistema operativo que te reserve una zona de memoria contigua y así trabajar cómodamente. Y aunque no lo hagas, siempre puedes mapear a mano tú en tu programa o hacer mil chapuzas que se pueden hacer.
Dices: "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."
A mi juicio, lo que dices no tiene ningún sentido, o no te explicas bien, una de dos. Si necesitas manipular una dirección del guest, ¿cuál es el problema? ¿Qué tiene que ver el malloc del host con el del guest? A ver si me entero, creo que pretendes decir que es que la máquina guest en realidad ejecuta código nativo de 32 bits y no lo habéis hecho portable, por lo que a lo mejor el guest está haciendo un malloc() con Lua o similar y resulta que te devuelve una dirección de 64 bits y luego quizás estás manipulando esa dirección suponiendo que es de 32 bits y a veces te puede cascar si el malloc() te mapea la memoria en diferente parte alta. ¿Van por ahí los tiros o qué?