12. Sobre el software y la compatibilidad

¿Acaso hace el origen descentralizado de Linux y el proceso de desarrollo "Open Source" de alguna manera menos creíble o "segura" la elección de éste frente a UNIX o Microsoft Windows NT, 2000 o XP? A juzgar por la enorme aceptación de Linux entre las empresas, claramente no. La lista de importantes empresas del mundo de la informática que apoyan activamente a Linux continúa creciendo a pasos agigantados. Entre ellas se incluyen compañías como IBM, Oracle, Hitachi, Dell, SGI, Mitsubishi, Sybase, Sony, AOL/Time Warner, Novell, Hewlett-Packard, Intel, Fujitsu, Sun Microsystems, Informix, Adaptec, NEC y muchas más.

Partiendo de esta lista de estrellas empresariales, los temores a que los más importantes productos de software no-Microsoft disponibles para Windows NT y 2000 no vayan a estar en Linux van careciendo de fundamentos conforme aparecen en el mercado nuevos productos. La cantidad de soluciones de software comercial y gratuito para Linux sigue creciendo. De manera similar, las organizaciones que abandonaron variantes de UNIX en favor de NT encontrarán el regreso a Linux cada vez más sencillo puesto que son cada vez más numerosos los consultores que ofrecen servicios de migración.

Un beneficio añadido de la comunidad Open Source de desarrolladores de Linux es el de que las mejoras, los parches, las correcciones, las actualizaciones y las nuevas versiones están disponibles para su uso (y modificación individual) a un ritmo que hace que parezca que Microsoft no hace nada. Menospreciar o malinterpretar los méritos de tal "revisión tan minuciosa" de la base de código de Linux es discutir la validez de la investigación académica y del método científico, tal y como viene practicándose desde hace siglos. Inversamente, el código fuente cerrado requiere depositar una confianza excesiva en su vendedor.

El software Open Source se encuentra disponible libremente y puede inspeccionarse previamente a su instalación. Al compilar el código localmente, optimizamos el programa para nuestra máquina local. Esto no es así con los binarios pre-empaquetados de Microsoft, compilados a distancia para especificaciones de PC genéricas. Las implicaciones en el rendimiento de esta diferencia en el software pueden resultar significativas. Puesto que inspeccionar el contenido de un binario enlatado de Microsoft es imposible, el administrador de sistemas debe aceptar que lo que hay en su interior es beneficioso. Se ha demostrado que lo que esconde en los binarios de Microsoft a menudo no lo es.

Los binarios que produce Microsoft son conocidos por contener "huevos de pascua", secuencias internas de código que nada tienen que ver con el propósito del fichero original. El más conocido es el simulador de vuelo que se encuentra en el programa de hojas de cálculo Excel de Microsoft. Este tipo de software distribuido por Microsoft es conocido sarcásticamente como «bloatware» (N. del T.: literalmente, software hinchado). No hay justificación alguna para derrochar energía computacional en un software tan superficial, por muy entretenido que lo encuentren algunos usuarios finales.

El software de instalación de Windows 2000 es aproximadamente cinco veces mayor que el de Windows NT 4. El código en sí contiene casi el doble de líneas (complejidad) que la versión NT 4.0, que ya de por sí es sobradamente compleja para sus tareas (véanse los problemas con el GUI y y los equipos "descabezados" más arriba). Como con versiones anteriores del SO, Microsoft continúa con su práctica de no publicar APIs críticas (interfaces de programación críticas que usan los fabricantes de software) para Windows XP, dotando de una ventaja efectiva a su compañía sobre el resto de ofertas. De hecho, Microsoft está integrando tal cantidad de aplicaciones adicionales en Windows XP que la complejidad del código hace que cualquier comparación con NT carezca ya de sentido. Dice un antiguo adagio que "a menos partes móviles, menos podrán ir mal». Microsoft siente evidentemente que el personal de TI no teme al creciente tamaño y complejidad del código de XP.

En contraste, una comunidad pública de desarrolladores altamente cualificados de todo el mundo afina y optimiza el código de Linux de una manera continuada. Su única tarea diaria consiste en implementar una mejor funcionalidad. No hay secretos en el código ni APIs ocultas ni "huevos de pascua". En casi cualquier situación comparable el código de Linux es proporcionalmente más pequeño que el de otros sistemas. Por esta razón, es muy rápido, fácil de optimizar para necesidades locales y libre de basura. Conforme los vendedores tradicionales de UNIX acogen a Linux, permiten que el equipo del compilador Open Source GCC pueda asegurarse de que los binarios que cree GCC alcanzarán una eficiencia similar en su hardware a la de sus propios compiladores propietarios. Tal y como se ha mencionado anteriormente, las principales versiones de UNIX están muy optimizadas y calibradas por sus fabricantes para funcionar mejor con el hardware apropiado.

Los programas de instalación de UNIX/Linux, llamados a menudo "binarios", son marcadamente más pequeños, al apoyarse en librerías del sistema operativo instaladas con anterioridad. Estas librerías proporcionan rutinas de código e información centralizada a todos los programas permitiendo así a los programadores concentrarse en los méritos y el rendimiento de su propio código, invocando simplemente a las rutinas de esas librerías probadas y sólidas conforme las necesiten.

Los sistemas operativos Windows NT, 2000 y XP ofrecen un escaso soporte de librerías. Los programas de Microsoft deben, por tanto, instalar una selección de ficheros ".DLL" (Librería de Enlace Dinámico) que contengan las librerías necesarias. Las instalaciones de estos ficheros .DLL sobreescriben a menudo bibliotecas críticas, versiones previamente instaladas del mismo fichero. Un resultado es que la desinstalación de software en una máquina Windows puede causar la eliminación indeseada de ficheros críticos, acompañada de la pérdida de funcionalidad en software no relacionado o incluso en el propio sistema operativo. A veces llega a hacerse necesaria una reinstalación completa del sistema operativo.

Un mensaje de desinstalación común en Windows alerta al administrador de potenciales problemas entorno a ficheros con varios usos, pero sin ofrecer información detallada sobre el peligro. Frente a esto, un administrador típico optará por dejar los ficheros "conflictivos" en la máquina antes que arriegarse a eliminarlos, pues desconoce cuáles serían las consecuencias de su eliminación. Como resultado, el sistema de ficheros de Windows continúa acumulando más y más ficheros carentes de utilidad alguna, ocupando espacio que bien podría utilizarse mejor con datos. La propia Microsoft ha hecho referencia a su problema aún vigente con las librerías como el «Infierno de las .DLL».

La solución de Microsoft al "Infierno de las .DLL" fue tomar prestada una estrategia común en UNIX/Linux para Windows 2000 y XP en los que los ficheros reemplazados se van almacenando de manera que es posible restaurar el sistema a una configuración anterior si un nuevo añadido causa problemas. Al ser el núcleo de los sistemas Windows menos estable, esta estrategia está demostrando no ser tan eficaz en tiempo real como en UNIX/Linux. El esfuerzo de Microsoft en esta área nunca se requirió de manera urgente ni se ha apreciado especialmente de manera general.

El paradigma de programación en UNIX/Linux no permite tales dificultades de desinstalación. Los programas se instalan en areas del sistema de ficheros o del disco de manera que puedan eliminarse de forma segura pues los binarios y las bibliotecas críticas del sistema se ponen en su lugar durante la instalación del sistema operativo. Los programas sólo hacen "llamadas" a las bibliotecas no soliendo instalar las suyas propias.

Además, al mantener las versiones de UNIX/Linux sus ficheros de configuración en el directorio /etc y permitir acceso limitado a esos ficheros, su optimización, limpieza y respaldo es sencilla y fácil de automatizar en tiempo real. Es más, estos ficheros pueden adaptarse fácilmente a otras máquinas similares de manera que la portabilidad de los atributos de configuración en un entorno TI es bastante sencilla. Los sistemas Windows, en vez de eso, se apoyan en un único fichero binario conocido como el "registro" para definir la mayoría de los atributos de configuración de la máquina. Un fichero de registro no puede transferirse a otra máquina. Los contenidos del registro se enredan con notoriedad tras muchos cambios de software y las ineficiencias pueden abundar de forma eventual. Compañías como Symantec venden productos que aumentan la eficiencia y la limpieza de los ficheros de registro surgiendo la cuestión de por qué la propia Microsoft vende un sistema por una parte tan dependiente de su mantenimiento que requiere software adicional no Microsoft así como licencias adicionales para ofrecer un mejor rendimiento.