| Artículos | 01 JUN 2002

Compatibilidad de aplicaciones en Windows 2000

Tags: Histórico
José M. Alarcón.
Seguro que en estos meses ha oído hablar mucho sobre las grandes facilidades que Windows XP ofrece en lo referente a la compatibilidad de aplicaciones. Es capaz de ejecutar programas antiguos emulando a versiones anteriores del sistema operativo en entornos controlados de compatibilidad. Lo que muchas personas no saben es que Windows 2000 también dispone de similares capacidades. Siga leyendo y aprenderá algunas cosas muy interesantes.

Una de las mayores preocupaciones que tienen los usuarios a la hora de actualizar su sistema operativo es la compatibilidad de las aplicaciones. Generalmente a todos nos inquieta que determinados programas a los que estamos acostumbrados y que nos gusta utilizar no funcionen en una nueva versión de Windows. Esto es especialmente preocupante cuando nos actualizamos desde Windows 9x/ME a Windows 2000 o, últimamente, a Windows XP. Como es sabido, estos sistemas son más exigentes que Windows 9x y no permiten, por tanto, que se comprometa la estabilidad de nuestra máquina, así que a ciertas aplicaciones no se les permite trabajar si efectúan operaciones peligrosas. Windows 2000 (y también Windows XP, ya que están basados en el mismo núcleo) fuerza el cumplimiento de determinadas reglas de programación, más estrictas que en versiones anteriores, que no todos los programadores cumplen. Por ello presenta problemas con algunas aplicaciones no explícitamente diseñadas para este sistema. Algunos problemas típicos se dan con los parámetros de llamada a ciertas funciones de la API, con el soporte de discos duros mayores 2 GB (que Windows 95 no soporta), con permisos de usuarios, con el sistema de protección de archivos, y con la manera que tiene de manejar la memoria el sistema operativo.

Modos de compatibilidad con versiones anteriores
La situación de incompatibilidad más frecuente se produce debido a conflictos de versiones. Ciertos programas verifican la versión del sistema operativo antes de ejecutarse y, si detectan una versión diferente a la que esperaban, ofrecen un mensaje del estilo del de la Figura 1 y dejan de funcionar. Realmente al programa no le ocurre nada y seguramente funcionaría sin problemas en versiones posteriores del sistema (como Windows 2000). Sin embargo, al no reconocer el entorno como Windows 9x, simplemente se niegan a funcionar. Esto, por otra parte, es síntoma de una mala programación.
Windows XP integra directamente en el sistema características de compatibilidad que permiten solucionar problemas como el que se acaba de mencionar. Basta con entrar en las propiedades de un ejecutable o acceso directo y en la pestaña de compatibilidad podremos escoger qué versión del sistema operativo necesitamos para que funcione el programa conflictivo. Como se ve en la Figura 2, es posible escoger Windows 95, Windows 98, Windows NT 4 SP5 o Windows 2000. Al seleccionar cualquiera de ellos, el programa creerá que efectivamente se está ejecutando en uno de esos sistemas y no mostrará el mensaje de problemas con la versión ni dejará de funcionar por ello.
Lo que mucha gente no sabe es que esto mismo se puede conseguir también en cualquier versión Windows 2000 (Profesional, Server o Advanced Server). En el CD-ROM de Windows 2000 existe un directorio de nombre Support en el cual podemos encontrar un pequeño ejecutable (de tan sólo 14 KB) llamado apcompat.exe. Ni siquiera viene comentada su utilidad y no tiene un icono asociado, por lo que hasta parece un programa de MS-DOS. Por ello es un programa prácticamente desconocido a pesar de su gran utilidad. Si hacemos doble clic sobre él veremos la ventana de la Figura 3. Obviamente se trata de un programa para mejorar la compatibilidad de las aplicaciones. Veamos cómo funciona.
En el campo situado en la parte superior introducimos la ruta del programa que queremos ejecutar en modo de compatibilidad, ayudándonos si es preciso con el botón Browse... situado a la derecha. Dentro del marco de sistema operativo (Operating System) seleccionamos el sistema con el que buscamos compatibilidad. Seleccionamos, por fin, alguna de las opciones avanzadas de la parte inferior, que enseguida veremos para qué sirven. Tras pulsar sobre OK, el programa seleccionado se ejecuta con la compatibilidad que hayamos indicado.
En la Figura 4 vemos un sencillo programa que solamente sirve para obtener la versión del sistema operativo en el que se ejecuta. En la figura se muestra el resultado de usarlo con tres modos de compatibilidad diferentes (Windows NT 4 SP5, Windows 98 y sin compatibilidad, o sea, ejecutado directamente en Windows 2000). Como podemos observar, en cada ocasión la capa de compatibilidad engaña al programa y le notifica la versión que hayamos escogido.
A continuación explica el significado de las opciones avanzadas de la parte inferior de la ventana de apcompat:
- Disable Heap Manager on Windows 2000: es la opción más difícil de entender para los no programadores. Windows 2000 posee un nuevo administrador de memoria “Heap” que opera de manera diferente al existente en Windows 9x o Windows NT. Debido a ello se pueden producir problemas con algunas aplicaciones que intentan leer o escribir en posiciones o bloques de memoria que ya han sido liberados o movidos por el gestor, se pueden intentar accesos multisubproceso no sincronizados a la memoria, pueden existir intentos de liberar bloques de memoria que ya han sido previamente liberados, etc. En ocasiones, desconectando el gestor de memoria “heap” de Windows 2000 se evita que se produzcan estos graves errores. Si algún programa antiguo genera excepciones de violación de acceso, pruebe a ejecutarlos a través de apcompat marcando esta opción. El lector interesado en saber más sobre la memoria “heap” puede consultar el artículo www.microsoft.com/la tam/msdn/articulos/2000/05/art02.
- Use pre-Windows 2000 Temp path: las versiones anteriores de Windows solían usar como ubicación de archivos temporales la carpeta C:\Windows\Temp o una análoga a ella. En Windows 2000 cada usuario dispone de una carpeta para archivos temporales bajo su directorio personal en Documents and settings. Esto da lugar a rutas muy largas, y muchos programas antiguos reservaban un espacio muy limitado para guardarlas, por lo que ahora fallarán al intentar utilizar las nuevas rutas. Para permitir que los programas usen la carpeta temporal antigua (más corta), marque esta casilla.
- Correct disk space detection for 2-GB+ drives: muchos programas antiguos usan un tipo de datos excesivamente pequeño para almacenar el espacio libre de las unidades de disco. En unidades con más de 2 GB de tamaño esto puede dar lugar a desbordamientos en los datos, que hacen que el programa indique erróneamente que no hay espacio suficiente para instalar una aplicación o copiar un archivo. Si se produce esta situación, marque esta casilla y el problema desaparecerá.
- Make the above checkbox settings permanent: si marca esta casilla no tendrá necesidad de ejecutar siempre un determinado programa a través de apcompat, sino que la utilidad guarda los ajustes necesarios en el registro y éstos se aplican automáticamente cuando se utilice el programa, con lo que nuestra comodidad aumenta mucho.
La aplicación apcompat se puede utilizar también desde la línea de comandos usando parámetros para controlar los aspectos de compatibilidad comentados. Sin embargo no tiene mucho sentido usarla así, ya que podemos guardar los cambios en el registro para cada aplicación y repet

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información