<div dir="ltr">Hola Yolmer,<div class="gmail_extra"><br><div class="gmail_quote">2014-03-17 14:21 GMT-04:00 Yolmer Rosales <span dir="ltr"><<a href="mailto:yolmer.rosales@gmail.com" target="_blank">yolmer.rosales@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Gracias Steven<div><br></div><div>pueden también recomendar alguna bibliografía  sobre la memoria virtual en windows o en general</div>
<div><br></div></div></blockquote><div><br></div><div>Puedes consultar el artículo en nuestra página sobre la memoria virtual en MS-Windows: <a href="http://articulos.conclase.net/?tema=navarro&art=virtual&pag=000">http://articulos.conclase.net/?tema=navarro&art=virtual&pag=000</a></div>
<div><br></div><div>En general, cualquier libro de texto sobre sistemas operativos dedicará al menos un capítulo a la memoria virtual.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div></div><div>desde la época del 386 se comenzó hablar de modo virtual o modo seguro es entonces eso precisamente lo mismo de aquellos tiempos remotos?</div>
<div><br></div></div></blockquote><div><br></div><div>Correcto. Existía el modo protegido precisamente para ofrecer una ejecución de programas diseñados para procesadores anteriores, ya que no desconocerían el uso de memoria virtual. De esta manera, estos programas podrían usar direcciones reales (físicas) en un entorno protegido sin tener problemas con la memoria virtual.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div></div><div>que pasaría si intento correr eso mismo en linux tengo más, menos o igual acceso?</div>
<div><br></div></div></blockquote><div><br></div><div>Hoy día, usamos memoria uniforme que es un modelo plano de tratar la memoria. Las versiones actuales de Linux para la arquitectura moderna de los procesadores de Intel, por ejemplo, conoce perfectamente el uso de memoria virtual. Linux tendrá sus propias funciones especiales para gestionar memoria virtual.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div></div><div>Cuando hablas de comunicarse con el sistema operativo para ver direcciones específicas de memoria, te refieres a alguna biblioteca en particular, o cómo se podría hacer?</div>

<div><br></div></div></blockquote><div><br></div><div>Hablaba en general. Cada S.O. suele usar sus propias funciones, así que es cuestión de comunicarse correctamente con el S.O. a través de su API.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div></div><div>disculpen la insistencia con el plugin, pero en ahora que lo dices, si el epsxe EMULA la plataforma psone entonces los datos definitivamente no se encuentran físicamente en la dirección que indica...</div>

<div><br></div><div>me atrevo entonces a hacer unas conjeturas, el plugin se comunica con el emulador este con el SO y este otro a su vez con el hardware, y de esa manera se garantizan unas cuantas cosas ... pero entonces me surge la otra pregunta, que es similar a una de las del primer mensaje.</div>

<div><br></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Este plugin. cómo lee de la memoria del programa? Por una parte ya revisé es una dll entonces... conjeturo nuevamente aprovecharon la comunicación que queda abierta con una librería dinámica. Pero no me queda del todo claro porque...</div>

<div><br></div><div>Según yo lo veo es imposible que los datos se carguen en las mismas direcciones en cada ejecución aún siendo virtuales, no hay nada que garantice [creo yo] que los va a encontrar libre. Entonces de que se puede valer un programador para hurgar  en la memoria de otro programa. Acaso de los socket? no se disculpen si dije barbaridades</div>

<div><br></div></div></blockquote><div><br></div><div>Veamos. Tienes que tener algunas ideas claras sobre todo esto:<br><br>- El emulador no es más que un programa, que puede comunicarse directamente con el S.O. o no.</div>
<div>- El emulador no va a cargar un juego de la PS directamente al procesador. La función de un emulador es "emular"; es decir, imita o recrea un comportamiento.<br></div><div>- Las instrucciones que forman un programa (juego) diseñadas para la PS no serán idénticas a las instrucciones aceptadas por un procesador de Intel. Playstation usaba un procesador MIPS que es de una arquitectura MUY diferente a la de Intel. Algunas características son iguales, pero las implementaciones son muy diferentes.</div>
<div>- El emulador conoce perfectamente las instrucciones del procesador de la PS y su formato; y obviamente conoce las diferencias entre el diseño de la PS y el diseño de los procesadores de Intel.</div><div><br></div><div>
<br></div><div>El emulador en realidad es un intérprete:</div><div><br></div><div>1.  Lee los datos en el fichero del juego, que representan instrucciones y valores,</div><div>2.  Interpreta las instrucciones, y</div><div>
3.  Ejecuta las tareas comunicándose con el S.O.; o bien a través de su API oficial, o bien directamente en ensamblador</div><div><br></div><div>Lo que el emulador no debería hacer es hacer una traducción (o interpretación) literal de las instrucciones de la PS a las de Intel, porque es posible que no sean compatibles; ni mucho menos con el tema de la memoria. Si ambas arquitecturas coinciden en diseño, entonces obviamente es más fácil traducir una instrucción a otra, y por tanto hay menos trámites.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div></div><div>Tal vez viendo el fuente me pierda más porque no soy experto pero ni siquiera es un proyecto abierto</div>
<div><br></div><div>Disculpen lo largo.</div><div><br></div></div></blockquote><div><br></div><div>No te preocupes por el tamaño del mensaje, con tal de que todo lo que digas sea útil para expresar tus dudas.</div><div><br>
</div><div><br></div><div>Espero que lo anterior te aclare las dudas.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>