Durante muchos años (mucho después de la introducción de Windows XP) ejecuté una colección de PC de escritorio antiguas con Windows 9x. Básicamente, estas máquinas tenían especificaciones de hardware demasiado bajas para actualizarlas a XP (y habían costado mucho dinero), así que seguí usándolas con su software original: varias instalaciones de Windows 98SE y Windows ME (todas ejecutando como versiones de 32 bits).
En el caso, nunca usé XP. Las máquinas Win9x eran tan confiables que seguían funcionando mucho después de que XP y Vista desaparecieran. Pero finalmente tuve que migrar, después de un tiempo, a Windows 7 de 64 bits.
¡No voy a hacer algo realmente tonto, como preguntar por qué tal o cual programa no se ejecuta en Win7 de 64 bits! :-)
Sin excepción, todo el software que había estado ejecutando en Windows 98SE de 32 bits funcionó de inmediato (por así decirlo) en la arquitectura NT de 64 bits de Win7. Hoy en día, todavía uso una variedad de este software, especialmente los programas de procesamiento de textos y editores HTML que uso habitualmente.
¿Existe alguna razón técnica por la que nunca experimenté las dificultades que esperaba al ejecutar programas de Windows 9x en NT de 64 bits? Me hablaron sobre la configuración de "compatibilidad" en Win7, pero nunca tuve que ejecutar un programa en "modo de compatibilidad".
Soy consciente de que Windows 7 mantiene el software de 32 y 64 bits en ubicaciones separadas y los maneja de manera diferente: pero esperaba que esto estuviera relacionado con programas de 32 y 64 bits escritos para Windows 7.
Me sorprende que los programas de Windows 98 de 32 bits parezcan ser totalmente compatibles con los programas de Windows XP/Vista/7 de 32 bits y me gustaría entender por qué es así. ¿Realmente no hay diferencia entre ellos?
Además, muchos de los antiguos programas de Windows 9x eran/son portátiles. Tengo la costumbre de colocarlos en memorias USB o en el escritorio de Windows 7 y simplemente ejecutarlos. No he experimentado ningún problema. Aunque no se estén ejecutando desde una carpeta de Archivos de programa. Nuevamente, me gustaría entender por qué el sistema operativo no se opone a esto, desde una perspectiva técnica.
¿Estoy haciendo algo inseguro? El sistema operativo Windows 7 parece muy estable, pero me gustaría saber si le estoy pidiendo que haga cosas que no debería hacer.
Respuesta1
Debes ser el primer usuario que se queja porque no tiene problema alguno. ;)
Si bien los principales medios de comunicación han hecho todo lo posible para darle a Windows una reputación inmerecida en el área de compatibilidad de aplicaciones, el hecho es que Microsoft ha invertido mucho en compatibilidad con versiones anteriores y la gran mayoría de las aplicaciones escritas para Windows 98 todavía se pueden utilizar en Windows 7. , Windows 7 es el sistema operativo más estable que Microsoft haya desarrollado jamás. No te equivoques, la diferencia entre Windows 7 y Windows 98 es enorme pero:
- Windows 98 aprovechó una rica API de Windows que Microsoft no se esforzó en reescribir porque sí. Por ejemplo, la interfaz paradibujando un rectángulo en la pantalla,creando una ventanaomostrando una barra de menúsigue siendo el mismo.
- Windows 7 ha implementado medidas destinadas a abordar los problemas de compatibilidad del software heredado. Uno de ellos es la Virtualización UAC. Las aplicaciones de Windows 98 escribieron los datos de sus aplicaciones en su carpeta de instalación. Windows 7 ya no permite eso; sin embargo, para aplicaciones heredadas, UAC Virtualization redirige la operación de escritura de datos fuera de la carpeta de instalación de la aplicación a
%LOCALAPPDATA%\VirtualStore
.
Las aplicaciones de la era Windows 98 que ya no funcionan en Windows 7 incluyen aplicaciones de 16 bits (que no se ejecutan en Windows de 64 bits pero a veces se ejecutan en Windows de 32 bits) y aplicaciones que dependen de hacks o servicios arcanos del sistema operativo heredado.
Respuesta2
Estás haciendo muchas preguntas aquí, algunas bastante complejas, pero la respuesta básica es "Microsoft se esfuerza mucho en mantener la compatibilidad con versiones anteriores". Honestamente, una mejor pregunta podría ser "¿por qué no funcionaría?", ya que tanto Win9x como NT (incluido Win7) usan la API de Win32 y el conjunto de instrucciones x86 (las extensiones de 64 bits de AMD para el conjunto de instrucciones x86 de Intel son compatibles con versiones anteriores; un procesador "x64" que se ejecuta en modo de 64 bits también puede ejecutar programas de 32 bits).
La razón más probable por la que las cosas no funcionarían sería simplemente por los controles de acceso. Win9x no admitía ningún tipo de control de acceso; cualquier programa podía hacer lo que quisiera. Usado de forma maliciosa, esto hacía que escribir malware fuera realmente fácil. Usado de forma no maliciosa pero perezosa, esto significa que muchos desarrolladores escribieron sus programas de manera que los programas escribieran datos en sus carpetas de instalación. Esta es una mala idea por varias razones diferentes, una de las cuales es la seguridad; en un sistema operativo "real", la ubicación predeterminada en la que se instalan los archivos no permite que personas que no sean administradores escriban en archivos, y se supone que debe ejecutar como no administrador, excepto al instalar/actualizar software.
Por supuesto, todo este asunto de "escribir en el directorio desde el que estás ejecutando" esfácil(Dije que los desarrolladores estaban siendo vagos...) y sí, también hace que el software sea "portátil" en el sentido de que puedes ponerlo en una unidad flash (que generalmente también carece por completo de controles de acceso, ya que usan variantes del El sistema de archivos FAT y FAT no admite permisos de archivos). Ejecutando software de esta maneraesmenos seguro que instalarlo en un área de acceso restringido y ejecutarlo desde allí (como usuario no administrador), pero probablemente esté bien siempre y cuando no comparta la computadora con otras personas.
En cuanto a por qué el sistema operativo no se opone... ¿por qué esperarías que lo hiciera? Program Files
no es unespecialcarpeta de cualquier manera, es solo el lugar donde, por convención, instalas programas. (En realidad, esta es una convención realmente estúpida, porque algunos programas se estropean si los instalas en una ubicación con espacios en su ruta, pero tal vez MS quería asegurarse de que los desarrolladores no estuvieran siendo muyesoperezoso...) Lo único especial Program Files
es que en los sistemas de 64 bits, cuando los procesos de 32 bits solicitan la carpeta "Archivos de programa", en realidad son dirigidos a la Program Files (x86)
carpeta. Más allá de eso... el sistema operativo le permite ejecutar programas desde cualquier lugar al que usted, el usuario, tenga acceso. Algunos programas se instalan intencionalmente en su perfil de usuario o en su propia carpeta en la raíz de la unidad ( C:\Python27
es una carpeta común para ver en una máquina de desarrollador). Esos programas funcionan bien.