CÓMO MANTENER SANO NUESTRO WIN98
--------------------------------------------------------------

Bien, en pequeñas respuestas y pequeños articulos hemos ido publicando los consejos para mantener correctamente nuestro PC. Seamos realistas, nada más instalar un win98 limpio, el sistema es totalmente estable. Según vamos instalando drivers y productos, vemos que el sistema se nos va degradando y empiezan a aparecer (o pueden empezar) pantallas azules, y misteriosos "casques" de programas y bloqueos en Windows.

Pero esto no sucede nada más instalar. Por tanto ¿quién o quiénes son los culpables? y ¿cómo podemos protegernos?.

Pensemos que la mayoría de fabricantes de software son muy chapuzas. Piensan "únicamente" en sus aplicaciones y no piensan en su influencia sobre el resto de aplicaciones y a veces incluso ni piensan en su influencia en el propio Windows.

Y mucho más peligrosos son ciertos fabricantes de hardware (y además de conocidísimas marcas) que nos instalan drivers que además afirman que están certificados por Microsoft y esto es mentira. En particular son muy peligrosos los drivers de video. Y en particular tanto Diamond como Matrox, pecan de mentirosos al afirmar la certificación de drivers.

La única manera de ver si un driver está o no certificado por Microsoft, así como ver si el hardware que tenemos o vamos a adquirir está certificado, es en la página web oficial de Microsoft.

Vamos a repasar un poco el funcionamiento de Windows y las herramientas que tenemos para protegernos.


A TENER PRESENTE
--------------------------------

Windows es un compendio de dos cosas:

1) Programas y DLL's del sistema.

2) Drivers de dispositivos y archivos VXD (estos ultimos peligrosísimos, ya que un VXD se ejecuta con todos los niveles de privilegio en el núcleo de Windows (en modo Kernel), y una VXD mal diseñada o incompatible con otras, provocará siempre pantallas azules.

3) Registro. El registro no es nada más que un fichero donde están todos los parametros de Windows y de las aplicaciones. Si el registro se daña, Windows no funcionará correctamente.

Todos los programas, DLL's y las peligrosas VXD se cargan porque "explícitamente" están referenciadas en el registro o los invoca algún programa que vamos a ejecutar.

* Pero hay una excepción que debemos tener muy presente. Las VXD de la carpeta c:\windows\system\iosubsys se cargan *siempre* en el inicio de Windows. Simplemente por tener extensión VXD y estar en esa carpeta, se cargará automaticamente. Por tanto, es conveniente siempre "saber" qué VXDs
tenemos en ese directorio. Más adelante veremos como hacerlo.

* Igualmente recordemos que tenemos dos herramientas que también describiremos a continuacion: SFC y SCANREG. Una de ellas para controlar las "versiones" de una DLL o programa, y la otra herramienta nos permitirá guardar y recuperar el registro de Windows.

Con esta pequeña introducción, vamos a pasar al detalle de cada una de las utilidades anteriores.

SFC
-------

El SFC es un programa que reside en la carpeta c:\windows\system. Windows no le coloca icono, pero podemos colocárselo nosotros manualmente. O bien ejecutarlo desde Inicio->Ejecutar.

La función del SFC es "comparar" las versiones que actualmente residen en Windows con las que él tiene "registradas" en una pequeña base de datos. Si son diferentes, nos mostrará un aviso y nos informará tanto del número de versión, fecha y tamaño del archivo actual, y el número de versión, fecha y tamaño del archivo que él tiene registrado.

Tiene una pequeña pega (mejor dicho dos), bajo mi punto de vista.

1) La base de datos que "trae" por defecto Windows, no es correcta.

2) Por defecto, no están activadas las opciones de chequear versiones de programas y de recuperar ficheros borrados.

Debido a que el punto 2) es el defecto, si NADA más instalar Windows (y es importantísimo hacerlo en ese momento), ejecutamos el SFC, lo que hará será crear una nueva base de datos con la información que tiene en ese momento. Y la que tiene es precisamente los programas originales de Windows.

Es importante, para que no se nos olvide ya, después de ejecutarlo por primera vez, lo que debemos hacer es pulsar en el botón de "opciones" y marcar los dos últimos casilleros de esa pantalla. Es decir "verificar versiones" y "verificar programas borrados".

Bien, con esto tenemos ya creada nuestra base de datos de los componentes actualmente instalados. En cualquier momento, podemos ejecutar de nuevo SFC y que nos controle si algún programa o DLL ha cambiado. Si hubiese cambiado, nos informará de ello y nos permitirá recuperarlo del CD de instalación de
Windows.

* En princio, entonces, ¿qué criterios debemos seguir para recuperar o no una versión?.

Mi consejo es seguir el criterio de número de versión. Nunca seguir el criterio de fecha de creación. Una DLL con un número de versión mayor, siempre será más actual aunque tenga fecha mayor. Por tanto si el archivo
que tenemos actualmente tiene un número de versión inferior, deberemos recuperar el anterior.

Recordad también que a igualdad de número de versión, puede que tengamos una DLL cuyo tamaño sea diferente al anterior. En este caso, debemos darle a "actualizar". Es decir "no recuperar". A veces sucede esta incongruencia, debido a que existen herramientas que "alinean" los codigos ejecutables de una DLL para una carga más rapida. En este caso, la DLL es la misma pero su tamaño es ligeramente mayor al estar alineados todos sus segmentos internos a frontera de página (4 Kbs).

Un posible problema añadido, puede ser el siguiente:

a) Imaginemos que Windows monta la version 1123 de una DLL. Ejecutamos por primera vez SFC y se "queda" con las versiones actuales.

b) Montamos otro producto que nos actualiza es DLL a la version 1150. Ejecutamos SFC, nos informará que hay una versión superior y le decimos que correcto. Por tanto SFC "recordará" que la version actual es la 1150.

c) Montamos otro producto "chapuzas" que sin avisar, nos deja la versión 900. Al ejecutar SFC nos avisará del problema.

Pero en este caso, si le damos a "recuperar" y nos solicita el CD de instalación de Windows, nos recuperará la 1123 y no la 1150 que es la que necesitaba la aplicacion del punto b).

Una posible solución, sería tener TODA una copia de Windows guardada después de cada instalacioo (es decir despues del punto b). Y cada vez que SFC se queje, recuperamos desde esa copia en vez de desde el CD de Windows. Pero esto ocuparía mucho espacio en disco y además nos obligaría a realizar una copia cada vez que hagamos una instalación de algún producto.

* Y otra solución, más elegante, es la siguiente: debido a que el SFC cada vez que se ejecuta, nos añade información a un fichero llamado SFCLOG.TXT que reside en la carpeta de Windows, lo que podemos hacer, es utilizar dicho fichero como "historia". Me explico: SFC nos dejará en ese fichero las incidencias detectadas. Evidentemente nada más instalar Windows y ejecutar por primera vez SFC, nos dejará únicamente las estadísticas de lo analizado.

Ahora montamos un producto nuevo. Antes de nada, entramos con un editor ("edit" o "notepad") en ese archivo y le ponemos una linea de texto que diga por ejemplo: "Instalacion del producto xxxxx". Y nada más instalar el
producto y ejecutar SFC, nos irá dejando a continuación la historia de modificaciones. Por tanto cualquier DLL modificada con número de versión superior, aparecerá allí, y además después de la línea de comentarios que
hemos colocado. Con esto podemos "tener controlado" qué producto nos ha instalado una determinada versión de DLL.

Si posteriormente ocurre un "machaque" como el que hemos comentado anteriormente, podremos recuperar, bien mediante SFC o bien incluso a mano, o reinstalando el producto anterior, la DLL (o DLL's) correctas.

Es un poco más laborioso, pero nos ahorramos espacio en disco y además tenemos nosotros el control "absoluto" de lo que sucede en nuestro PC.

SCANREG
----------------

Windows 98 conserva por defecto 5 copias de la base de registro. Además realiza una copia de la base, automáticamente la primera vez que arrancamos el PC en el día.

Los ficheros de copia, se llaman RB000x.CAB (siendo "x" un numero de cero a 5), y que los guarda en la carpeta c:\windows\sysbckup.

El número de copias, así como otras opciones, es configurable en el fichero scanreg.ini que reside en el directorio de Windows. Pero mi consejo es no tocarlo, únicamente, echarle una miradita.

Debido a que como hemos comentado antes, win98, la primera vez que arrancamos en el día, realiza automáticamente dicha copia, es por ello por lo que el primer arranque en el día, es algo más lento que los siguientes reinicios en el propio día.

* ¿Cómo podemos recuperar el registro?

Debemos arrancar el PC con la tecla CTRL pulsada. Con esto, Windows nos mostrará un menú y seleccionaremos "Sólo Simbolo del Sistema". Una vez que estemos en él, debemos teclear:

SCANREG /RESTORE

Y nos mostrará una pantalla con las copias del registro y sus fechas permitiendo recuperar la de la fecha que queramos. Recordar que la fecha nos indica justo la copia realizada al INICIO de ese día.

* Existe igualmente la posibilidad de ejecutar dicho comando bajo Windows. Pero bajo Windows no nos permite parámetros y lo único que hace es invocar al programa SCANREGW el cual, únicamente nos analiza el registro en ese momento y lo importe: nos permite hacer una copia de registro en ese mismo momento.


VIGILANCIA DE LA CARPETA IOSUBSYS
--------------------------------------------------------------

Recordad que al principio de este artículo, hemos comentado que las VXD que están en la carpeta c:\windows\system\iosubsys, serán cargadas automáticamente al iniciarse Windows, simplemente por estar en esa carpeta y por tener extensión VXD.

Esto es muy peligroso. Mucho, pero muchos fabricantes de software, tienen la insana costumbre de poner allí VXD que, primero: puede que sean incompatibles con alguna otra e incluso nos muestren una pantalla azul al
arrancar y seamos incapaces de finalizar un arranque de Windows. Y segundo: muchas veces, estos mismos fabricantes, "se olvidan" de borrar sus VXD aunque desistalemos su programa.

Esto último es muy típico en los antivirus y sobre todo en las utilidades Norton (totalmente desaconsejadas por mí estas últimas).

Debido a lo anterior, puede que nos vayan quedando VXD, teóricamente sin uso, en esa carpeta y como se cargan de todas formas, en algun momento nos pueden provocar incompatibilidades.

Lo mejor es "vigilar" con lupa su contenido. ¿Pero como hacerlo? Aquí no tenemos ninguna herramienta. Por tanto debemos hacerlo "a mano".

Lo mejor es tener un pequeño fichero de texto con las VXD que tenemos nada más instalar Windows. En una ventana MSDOS, podemos teclear por ejemplo nada más instalar Windows:

cd \windows\system\iosubsys
dir *.VXD > VXD.TXT

Esto nos escribirá la informacion de las VXD de Windows en un fichero de texto en esa carpeta llamado VXD.TXT.

Posteriormente y cada vez que instalemos algo, podemos mirar las VXD en esa carpeta y la información que tenemos en dicho fichero de texto. Y "a mano" podemos incorporar en ese fichero de texto los comentarios que queramos cuando algún programa nos instale alguna nueva VXD. De esta manera, las tendremos controladas.


ATENCION A LOS DRIVERS EN GENERAL
----------------------------------------------------------------

Como comentamos en el inico de este artículo, la mayoría de los fabricantes de software son unos chapuzas. Miran únicamente por su producto y les da igual, el machacar el funcionamiento de otro producto e incluso del propio Windows. No realizan las pruebas suficientes de compatibilidad y sacan los drivers al mercado, prácticamente sin probar.

La mayoría de los bloqueos de Windows (y sobre todo si es navegando), son debidos a la multimedia. En particular a los drivers de video y de sonido. Fundamentalmente a los de video. Por ello si Windows nos reconoce y monta sus drivers para una determinada tarjeta, dejar los de Windows. Los del fabricante no nos van a añadir prácticamente nada (alguna totntería sí. Pero nada más). Y lo que es seguro es que los del fabricante (excepto poquísimos casos) nos van a causar problemas.

Anteriormente yo fuí un enamorado de las tarjetas de video Diamond y Matrox. Los fabricantes han conseguido defraudarme.

Actualmente, únicamente utilizo tarjetas ATI. Creo que es el único fabricante que pone sus drivers en fase beta y admite informes de problemas que evidentemente soluciona. Incluso saca versiones candidatas para que quien quiera las vaya probando. Una vez finalizado todo el testeo correctamente, "libera" las versiones definitivas. Evidentemente se pillan en estos casos todas las posibles incompatibilidades (o la gran mayoría).

Fijaos igualmente que una tarjeta con un determinado chip (por ejemplo un determinado modelo de S3), dependiendo del fabricante de la tarjeta, tiene precios incluso 10 veces superiores. Y esto ¿por qué?.

Muy fácil. Una tarjeta, no sólo lleva el chip. También lleva una bios de la propia tarjeta. Y el hacer "bien" la bios cuesta dinero. El hacerla mal, no cuesta nada. Y esa es la diferencia entre que funcione o deje de funcionar.

** Y me queda la consabida frase: lo barato sale caro.

Un saludo,

--
Jose Manuel Tella Llop
jmtella@csi.com 

Fecha: lunes, 28 de junio de 1999 15:59