Innovación tecnológica en las distribuciones de software Linux

Una propuesta tecnológica de innovación

Ismael Olea


Tabla de contenidos

Breve descripción del contenido y objetivos del proyecto
Resumen de las innovaciones tecnológicas y/o funcionales del proyecto
Descripción del proyecto
Formato de paquete de software unificado
OpenDistro: distribución RPM unificada
Generador de distribuciones Linux personalizadas
Innovación y desarrollo de las herramientas de instalación
Gestión de instalaciones

Breve descripción del contenido y objetivos del proyecto

El software libre es un modelo económico de producción de recursos software que se caracteriza por:

  • libertad para copiar el software;

  • libertad para usar el software;

  • libertad para estudiar y modificar el software;

  • libertad para redistribuir las modificaciones del software.

Estas libertades se cimentan sobre licencias que explícitamente las permiten apoyándose en la legislación internacional sobre propiedad intelectual.

Dentro del mundo del software libre la tecnología de más éxito y penetración en el mercado es la conocida como Linux. Los sistemas operativos conocidos como Linux, a partir de ahora los llamaremos «distribuciones», son recopilaciones de software libre creadas por empresas y organizaciones, alrededor del núcleo Linux (compatible POSIX) más un software de instalación. Estas distribuciones suelen presentarse tanto en formato de CDROM como en repositorios accesibles telemáticamente e incorporan los servicios y prestaciones que pueden esperarse de cualquier sistema operativo moderno para configuraciones de servidor Internet/extranet, escritorio e incluso sistemas empotrados.

Este mundo del software libre padece una cierta duplicidad en las soluciones ofrecidas que aparentemente despilfarro de esfuerzos pero que en realidad forman parte de un ecosistema de software y que si bien aún se padecen algunos problemas de incompatibilidad debido a la fragmentación es cierto que hay un esfuerzo continuo de normalización hacia unos pocos estándares de referencia y aplicación general.

Uno de las cuestiones claves a la hora de elegir una plataforma de software es sin duda el coste total de propiedad (conocido por sus siglas en inglés TCO). Una de las técnicas para aliviarlo es la llamada gestión de entornos («enviroment management» en inglés) que, entre otras cosas, pretende controlar y automatizar la instalación y mantenimiento al día del software. Se propone profundizar y mejorar la tecnología disponible y convertirla en una opción absolutamente superior a la oferta dominante en el mercado.

Concluyendo, este plan permitirá aumentar la competitividad de los servicios de la empresa frente a los de la competencia, mejorar la productividad interna, ampliar al catálogo y calidad de nuestros servicios y contribuir a esa economía de colaboración con una innovación tecnológica de primer orden.

Resumen de las innovaciones tecnológicas y/o funcionales del proyecto

El proyecto pretende mejorar sustancialmente las tecnologías necesarias para la creación y mantenimiento de distribuciones Linux, mejorando la oferta, el coste total de propiedad (TCO) y el «time to market».

Dado que estamos hablando de usar software libre para mejorar la penetración del software libre, trabajamos para el cumplimiento de la directiva europea al respecto.

Los resultados de este proyecto serán publicados adecuadamente en Internet, para que la comunidad -usuarios, empresas y administracionharlos al máximo en beneficio de todos.

Descripción del proyecto

Formato de paquete de software unificado

Introducción a la tecnología

En los sistemas operativos libres (los basados en Linux entre ellos) el software se distribuye en forma de paquetes modulares que suelen incluir completa información sobre interdependencias lo que facilita la gestión de la instalación del software, su actualización y su integridad. Con frecuencia estos sistemas son mucho más avanzados que las alternativas ofrecidas por el software propietario.

Descripción del problema

Existen varias tecnologías en uso, de las cuales las más difundidas son RPM y DPKG, cada una de las cuales ofrece ventajas particulares. Igualmente otras tecnologías menos difundidas también incorporan prestaciones muy interesantes y apreciadas por colectivos de usuarios. Esto crea la necesidad de incorporar estas mejoras, de poder interoperar paquetes de diferente formato y por eso aparecen problemas de compatibilidad y gestión que precisan ser resueltos.

Objetivos

Se pretende estudiar y crear un nuevo formato, heredero de los actuales más populares (RPM y DPKG) y compatible hacia atrás con estos, que incorpore otras mejoras importantes inspiradas en otras tecnologías y que hagan uso de las tecnologías más recientes (por ejemplo la «web semántica»). Además crear el juego de herramientas necesario para su puesta en producción inmediata, aplicando las tecnologías más recientes de usabilidad, «web semántica» y automatización. Crear un API de programación, idealmente independiente del lenguaje de programación.

Acciones para alcanzar los objetivos

Recuperar los trabajos realizados por Wichert Akkerman para una posible nueva versión unificada de RPM y DPKG. Estudio y comparación de las diferentes prestaciones de las tecnologías actuales como RPM, DPKG, «BSD ports», NeXT/Mac OS X, Gentoo, .Net, Lindows, etc. Estudiar los posibles problemas de compatibilidad que puedan surgir que sean completamente independientes del formato de paquetes y ofrecer una solución para los mismos (compatibilidad binaria, jerarquía de directorios, etc). Diseño y programación de una herramienta de mantenimiento de software, de un interfaz de usuario y del API. Estudio, definición y redacción de un manual de estilo y de un ciclo de calidad de los paquetes de software. Creación de un asistente para simplificar la creación y mantenimiento de los paquetes.

OpenDistro: distribución RPM unificada

Introducción a la tecnología

En la introducción de la sección anterior se ha explicado el concepto de distribución de sistema operativo Linux, por lo que huelga repetirse. En cuanto a la tecnología RPM, es la líder para el empaquetamiento de software y es usada por docenas de distribuciones diferentes.

Descripción del problema

Una gran parte de las distribuciones RPM existentes están fuertemente basadas en Red Hat Linux -en lo sucesivo RHL-, que es la referencia principal del mercado. La necesidad de distinguirse, lo complicado de participar colaborativamente en el mantenimiento de RHL o de incorporar y mantener nuevos paquetes, dado que es un producto comercial y la estrella de la estrategia mercadotécnica de Red Hat Inc., complican mucho la interoperabilidad de paquetes y a veces la calidad de los mismos. Además muchos esfuerzos acaban siendo duplicados, con frecuencia múltiplemente duplicados. Y finalmente, el mantenimiento y actualización se complica enormemente cuando se usan diferentes fuentes de paquetes que no están realmente integradas.

Objetivos

Estudiar y comparar la tecnología disponible. Conocer los problemas de compatibilidad del software y proponer soluciones para los mismos. Investigar y proponer un esquema de organización de una gran distro reunida de última tecnología. Propuercha de una distribución RPM reunificando esfuerzos similares.

Acciones para alcanzar los objetivos

Estudiar detalladamente los defectos y virtudes de las principales distribuciones y sistemas operativos en lo que a organización y mantenimiento de paquetes se refiere, entre ellas: Red Hat, Mandrake, otras distribuciones basadas en RPM, Debian, familia BSD, Gentoo, United Linux, .Net y Mac OS X. Estudiar los problemas de compatibilidad que surgen al interoperar paquetes de software de distribuciones Linux (por ejemplo jerarquías de directorios -FHS- o compatibilidad binaria -LSB-, etc). Estudio y propuesta de un modelo unificado de repositorio integrado y distribuido usando las tecnologías de la «web semántica». Una serie de encuentros internacionales para el estudio de requisitos, definición y puesta en marcha de una distribución genérica RPM libre que reuna a los principales actores existentes que sea base para la composición de productos y servicios de los miembros activos o de terceros. Diseño y redacción de un manual de estilo de creación, mantenimiento e integración e implementación de un método de control de calidad de los paquetes de software que pertenecen a la distro.

Generador de distribuciones Linux personalizadas

Introducción a la tecnología

En los sistemas operativos libres (los bas ellos) el software se distribuye en forma de paquetes modulares que suelen incluir completa información sobre interdependencias lo que facilita la gestión de la instalación del software, su actualización y su integridad. Con frecuencia estos sistemas son mucho más avanzados que las alternativas ofrecidas por el software propietario.

Descripción del problema

La venta de distribuciones Linux empaquetadas, es decir, uno o varios cdrom empaquetados junto a uno o varios manuales, es un mercado muy duro en el que realmente la competencia ocurre entre los diversos proveedores Linux que contra los proveedores clásicos (especialmente Microsoft). Dada que introducir una nueva distribución en el mercado es relativamente fácil, la oferta está saturada de distribuciones generales muchas de las cuales nunca alcanzarán la viabilidad comercial.

En cambio queda claro que hay todo un mercado disponible, que sí abre mercado (arrebatándoselo a proveedores clásicos) en la creación de distribuciones a medida. Cualquier aceleración y reducción de costes en el proceso de creación de las mismas supondrá una mejora de la competitivad y de la calidad de la empresa.

Objetivos

Investigar, crear y evaluar un prototipo de herramienta para la creación, gestión y mantenimiento de distribuciones personalizadas contando con estas prestaciones:

  • comprobación de dependencias entre paquetes que advierta deltas y de los conflictos que surjan;

  • en el caso de paquetes modificados, control de los originales para avisar automáticamente de cambios;

  • mantenimiento de perfiles de distribución;

  • regeneración automática de las distribuciones;

  • mantener información actualizada de otros paquetes candidatos para ser incluidos en la distribución;

  • publicación en diferentes formatos, al menos repositorio Internet y CDROM;

  • adaptable a soluciones intranet.

Acciones para alcanzar los objetivos

Investigar en la definición del ciclo de publicación de distribuciones Linux y definir las especificaciones a partir de:

Investigar y especificar, usando las tecnologías de la «web semántica», un esquema de producción de distribuciones basado en:

Crear y evaluar un prototipo para la creación, gestión y mantenimiendo de distribuciones personalizadas.

Innovación y desarrollo de las hetalación

Introducción a la tecnología

Como introducimos anteriormente, las distribuciones Linux están compuestas por una recopilación de paquetes de software más un instalador. Esta es una herramienta muy importante porque para muchos usuarios es determinante a la hora de optar por una u otra oferta.

Descripción del problema

La fase de instalación debe resolverse de la forma más rápida y sencilla posible para superar las suspicacias de los usuarios más resistentes al cambio, esos que tienen por lema «virgencita, que me quede como estoy».

Eso quiere decir que la sencillez debe ser absoluta y la sensación de seguridad máxima. Soluciones psicológicas a problemas lógicos.

Por lo dicho y porque por ahora la mayoría de las instalaciones Linux se hacen sobre sistemas que ya tienen otro sistema previo, normalmente alguna versión de Windows, es necesario añadir más inteligencia a la aplicación para poder reconocer cualquier configuración existente y adaptarse a la misma sin perjuicio de las instalaciones anteriores.

Por otro lado el problema de la detección del hardware es muy importante para conseguir que la instalación sea lo más fluida y automática posible. Problema más complicado por la enorme cantidad de dispositivos en el mercado y porque no todos los fabricantes contibuyen a los proyectos libres la información precisa. Existen algunas herramientas que han mejorado mucho el funcionamiento pero parece adecuado dedicar un jora.

Objetivos

Estudiar y mejorar el aspecto de ergonomía de las herramientas de instalación a considerar. Estudiar e integrar las técnicas de detección de hardware en un prototipo unificado.

Acciones para alcanzar los objetivos

Estudio de las tecnologías disponibles en detección de hardware, por ejemplo las de Red Hat, Knoppix, Mandrake, United Linux, etc. Creación de un prototipo unificado y evaluación del mismo. Estudio de las herramientas de instalación más conocidas, por ejemplo las de RedHat, Mandrake, United Linux, Progeny, Corel Linux, etc. Estudio de ergonomía para mejorar el proceso de instalación. Crear una herramienta asistente de gestión de partciones.

Gestión de instalaciones

Introducción a la tecnología

La gestión de instalaciones (o en su expresión inglesa «eniroment management») comprende las herramientas necesarias para mantener el control sobre el software instalado en redes de máquinas.

Descripción del problema

El mantenimiento del software es una parte muy importante de lo que se llama el coste total de propiedad (siglas TCO en inglés). También es obvia necesidad de mantener el software instalado al día, especialmente cuando pensamos en conceptos de seguridad. Por eso mantener a mano las actualiaciones es un trabajo demasiado costoso y poco atractivo.

Por otro lado, los varios formatos de paquete de software disponibles y la gran cantidad de herramientas, incompletas algunas de ellas, son un marco de trabajo muy confuso que no ofrece una solución definitiva al administrador.

Objetivos

Crear y/o mejorar un entorno completo (línea de órdenes e interfaz gráfico) para la gestión de instalaciones independiente del formato que disminuya significativamente el TCO. También podrá funcionar automáticamente y configurada en internet o en una intranet.

Acciones para alcanzar los objetivos

Estudiar, comparar y evaluar las alternativas que se ajustan de alguna manera a la descripción del problema, por ejemplo: Redhat Network, Ximian Red Carpet, Apt+Synaptic, openpkg, urpmi, poldek, Lindows, Volution, Tivoli, etc. Elegir la alternartiva (mejorar alguna tecnología presente o crear una nueva herramienta). Incorporar mejoras de ergonomía y HCI.