El error histórico de Microsoft

En MS-DOS, como en UNIX, como en VMS, las aplicaciones se instalaban en un directorio, en el que uno colocaba todos los ejecutables, librerías, archivos de configuración, ficheros de datos, etc. que necesitara el programa para su funcionamiento. Esta metodología era bastante limpia porque permitía tener todo lo necesario en un único lugar del disco. MS-DOS era monousuario y monotarea, es decir, no había más que un usuario en el sistema (más bien el concepto de usuario no existía) y sólo podía ejecutar una aplicación en cada momento. Por tanto sólo había una configración posible, y bastaba con guardar la configuración en un archivo dentro del mismo directorio del programa. Si además la aplicación generaba documentos, como sucede por ejemplo con un procesador de texto, éstos podían guardarse en el mismo directorio también o, mejor, en otro diferente, lo que facilitaba la realización de copias de seguridad.

UNIX (antepasado de linux, por decirlo rápido aunque mal) fue desde el principio un sistema multiusuario y multitarea, de modo que tenía que resolver el problema de cómo guardar la configuración personal de cada usuario para cada programa. Para eso se ideó un tipo especial de archivo, cuyos nombres comenzaban por punto (.) que no aparecía por defecto al mirar los contenidos de un directorio; además cada usuario tenía (tiene) un directorio personal donde guardar sus archivos, incluídos los de configuración.

Este sistema tan simple tiene algunas ventajas que pasan desapercibidas sin una reflexión detenida. Por ejemplo, el tema de los permisos. Un usuario jamás tiene por qué tener permisos de escritura en el directorio donde está el programa con “sus cosas”. Sólo tiene que tener permiso de escritura en sus archivos y sus configuraciones, que cuelgan todos a partir de su directorio de usuario (en linux es /home/nombre-del-usuario). La otra ventaja es que un usuario no tiene por qué tener permiso de lectura (y mucho menos de modificación) de los directorios de los otros usuarios.

Cuando Microsoft desarrolló Windows tuvo que enfrentarse a nuevos problemas, para los que posiblemente reflexionó poco. Y alguna mente privilegiada de redmon pensó: “creemos el win.ini”, un archivo donde guardar la configuración de Windows. Y más adelante ¿por qué no creamos un servicio en el API de Windows para que los desarrolladores añadan la configuración de sus propios programas al win.ini, y así centralizamos todo? Hay que pensar que en su primera época Windows todavía era monousuario y su sistema de archivos (FAT) no permitía asignar permisos a los ficheros.

La cosa se complicó cuando llegó la idea multiusuario a Windows. El win.ini ya no servía, PORQUE SÓLO HABÍA UNO, y diferentes usuarios querían tener diferentes configuraciones. Para mayor desastre los desarrolladores se habían acostumbrado a meter sus configuraciones en el win.ini. Así que la misma mente privilegiada de redmon (u otra todavía más impresionante) dijo ¡Hágase el registro! El registro es una especie de base de datos donde se guardan todo tipo de configuraciones de hardware, de Windows, de programas y de usuario. Todo mezclado, como en el cambalache de Discépolo.

Más adelante (con Windows NT y luego con XP) se introdujo un nuevo sistema de archivos (NTFS) que permitía permisos en los ficheros, y se creó una infraestructura para que cada usuario tuviera su espacio propio, pero ya era demasiado tarde. El registro se había convertido en un auténtico monstruo, una estructura que crece en las máquinas Windows hasta el tamaño de varios GB y es el verdadero culpable de que los Windows se vuelvan lentos como tortugas en el arranque al cabo de unos meses de uso.

Otra consecuencia sorprendente: un usuario de linux, o de Apple (puesto que MacOS está construído sobre UNIX) es que en estos sistemas se puede instalar un programa, en general, copiando los archivos a cualquier lado (aunque haya un sitio recomendado para colocarlos) y los programas FUNCIONAN sin más. En Windows, como todo el mundo sabe, esto no es posible (salvo casos muy raros, normalmente en programas que vienen del mundo linux). Los programas hay que INSTALARLOS. ¿Por qué? Sencillamente porque además de copiar archivos tienen que meter cosas en el registro.

Lo peor es que ya es demasiado tarde para cambiar los hábitos de los usuarios y los desarrolladores. Todo el mundo es capaz de escribir en el registro y muchísimos programas suponen que pueden escribir donde les parezca: por eso es tan fácil para un virus instalarse en el sistema. Con Windows Vista han hecho un tímido intento de prohibir por defecto y pedir permiso cuando alguien intenta escribir en el registro o en los directorios del sistema, pero las preguntas son tan frecuentes que los usuarios simplemente desactivan esa opción. Y vuelven a estar expuestos.

Es un desastre.

Autor: Francisco Serradilla, poeta y doctor en Informática. Su línea principal de investigación se refiere al desarrollo de Softbots (Robots Software) y Agentes Inteligentes en Internet.

Tomado de Libro de Notas