¿Funcionan todos los programas x86 en procesadores x86-64?. Si no funcionan todos, ¿cuáles son los que no funcionan?. ¿Por qué?.
1 respuesta
Respuesta de sherite
1
1
sherite, Desarrollador 5 Estrellas Visual Studio 2005 MCAD Visual Studio...
Esto tiene mucho que ver con la arquitectura interna del procesador, e íntimamente vinculado con el sistema operativo que estés utilizando y los programas. La respuesta seria demasiado larga para un simple post, pero a modo de guía, no puedes por ejemplo correr un programa de 64 bits en un procesador y sistema operativo de 32, pero en el caso inverso, se admite en algunos casos el modo de compatibilidad, si estas en un modo de 64 bits, se puede emular el programa de 32 bits para que corra en ese entorno, acudiendo al modo protegido. Esto te llevara a varias otras cosas, como el modo real, el modo protegido, que es eso de los 32 y 64 bits, la arquitectura del procesador, etc. Pero estas son en algunos casos limitaciones físicas internas del procesador, y en otros casos impuesta por el fabricante de los sistemas operativos intervinientes. Si quieres profundizar más en alguno de estos conceptos, quizá te pueda ayudar, ya que yo mismo estoy desarrollando mi propio sistema operativo. Un abrazo.
Buenas noches: Muchas gracias por tu respuesta. Me encantaría profundizar en el concepto. ¿Por qué algunas aplicaciones de 32 bits no pueden correr con x86-64?. Teóricamente AMD al desarrollar AMD64, base del x86-64 buscaban la compatabilidad con x86, ¿no?. Si tienes alguna página web o me puedes dar referencias te estaría muy agradecido. En realidad estoy tratando de comprender como funciona todo. Ya se lo que es el modo real y estoy trabajando en el modo protegido plano. Un abrazo
En algunos casos, y como no estamos hablando específicamente de ninguna, te digo ideas más generales, se debe a limitaciones del desarrollador del software (de hecho, yo desarrollo aplicaciones), y el lenguaje de programación, como por ejemplo .NET, tiene un compilador, en el cual puedes elegir para que plataforma compilar, 32 bits, 64, o ambas, eso queda a gusto del programador. Por otro lado, puede que el programador cree restricciones que se activaran en tiempo de ejecución cuando el programa reconozca el entorno en el cual esta corriendo. No estoy tan seguro de lo que afirmas respecto a AMD. Un buen principio para que te puedas guiar, seria investigar el libro de Andrew S. Tanenbaum de "Teoría de los Sistemas Operativos Modernos".
Buenas noches de nuevo: Yo estoy aprendiendo VB .NET y desarrollo algo. ¿Cómo seleccionas el para que plataforma compilar?. En fin, no quiero abusar de tu paciencia aunque conocer a alguien que de verdad sabe del tema es muy difícil. Compraré el libro de Tannebaun que me propones. Muchas gracias.