El proyecto Debian GNU/Linux

Javier Fernández-Sanguino Peña ^{∗} jfs@debian.org

Agosto 2000

Esta ponencia forma parte del III Congreso Hispalinux^{1} virtual, celebrado en Noviembre de 2000. Puedes participar en él en la sección de eventos de BarraPunto^{2}

Resumen

El proyecto Debian GNU/Linux es uno de los más ambiciosos proyectos de software libre en la actualidad, agrupando a un gran número de desarrolladores dispersos geográficamente que trabajan con un único objetivo: crear un sistema operativo totalmente libre.

En esta ponencia se van a tratar las experiencias de un desarrollador dentro de esta comunidad y analizar algunas de las formas en las que otras personas interesadas pueden colaborar.

1 Introducción

Debian comenzó como un proyecto fundado por el proyecto GNU^{3} de la Free Software Foundation^{4}, dirigido por Ian Murdock en agosto de 1993, para construir un sistema operativo basado completamente en programas libres.

El sistema operativo es el conjunto de programas básicos y utilidades que hacen que funcione un ordenador. En el corazón de un sistema operativo está el núcleo. El núcleo (kernel) es el programa mas importante de la computadora, hace todas las cosas de mantenimiento básico y le permite ejecutar otros programas. Debian es independiente del núcleo. Actualmente usa el núcleo de Linux^{5}, pero se está trabajando en proveer con Debian otros núcleos, usando Hurd^{6}.

Debian ha crecido mucho desde sus principios hasta convertirse en una distribución usada por, se estima, cerca de un millón de usuarios. Además, debido al inclinamiento de Debian en ser una distribución enteramente formada por software libre (con el compromiso de su Contrato Social^{7}), la totalidad de los paquetes integrantes del cuerpo principal de la distribución (main) son libres, estando disponibles en código fuente.

Aquí hay algunas de las fechas importantes de Debian:

• las versiones 0.01-0.90 vieron la luz entre agosto y diciembre de 1993.

• la versión 0.91 salió en enero de 1994, contaba con cerca de 30 desarrolladores y un sistema de paquetes primitivos.

• la versión 0.93R5 salió en marzo de 1995, en ella apareció el programa dpkg.

• la versión 0.93R6 surgió en noviembre de 1995, con cerca de 60 desarrolla dores, soportaba el sistema a.out y tenía la primera versión de dselect.

∗\begin{matrix}c \\ ◯ \end{matrix}Pepito Grillo y Pepote Grillote. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation. Se considerará como Secciones Invariantes todo el documento, no habiendo Textos de Portada ni Textos de Contra Portada. Puede consultar una copia de la licencia en: http://www.gnu.org/copyleft/fdl.html

1http://congreso.hispalinux.es

2http://barrapunto.com/eventos

3http://www.gnu.org

4http://www.fsf.org

5http://www.linux.org/

6http://www.gnu.org/software/hurd/hurd.html

7http://www.debian.org/social_contract

• la versión 1.0 nunca salió. Se convirtió posteriormente en la versión 1.1

• Buzz, la versión 1.1 salió en junio de 1996, con 474 paquetes, el kernel 2.0 de Linux y soporte completo de ELF.

• Rex (1.2) aparecería en diciembre de 1996 con 848 paquetes y 120 desarrolladores.

• Bo (1.3) saldría en julio de 1997, tendría 974 paquetes y 200 desarrolladores.

• La versión: Hamm vio la luz en julio de 1998, cuenta con más de 1500 paquetes en los que trabajan más de 400 desarrolladores, tiene pleno soporte de libc6, aunque aún mantiene librerías para los programas compilados con libc5.

• La siguiente versión: Slink se distribuyó el 9 de marzo de 1999. Contando con más de 2500 paquetes, y consta de cuatro cd-roms, dos de binarios y dos de fuentes. Para solventar problemas de seguridad descubiertos así como errores relacionados con el año 2000 se realizaron hasta cinco revisiones de esta versión.

• La versión actual Potato ha sido liberada el 15 de agosto del año 2000. Cuenta con más de 4000 paquetes de software y, sólo en binarios, iguala a la versión anterior (binarios y fuentes).

Pero el crecimiento de Debian no ha sido solamente en la cantidad de programas incluidos en la distribución, sino también en el número de personas que trabaja en ella; actualmente cuenta con más desarrolladores que cualquier otra distribución de GNU/Linux. Y ha sido reconocida de forma internacional por multitud de compañías:

• IBM Global Services^{8}

• Compaq^{9}

• France Telecom^{10}

• Corel^{11}

• eBay^{12}

• VA Linux Systems^{13}

• Linux Hardware Solutions^{14}

Esto sin contar las múltiples donaciones de equipamiento que ha recibido de múltiples compañías, entre otras: Novare, VA Linux, Compaq, y Sun.

Debian se trata de la única distribución importante de GNU/Linux mantenida solamente por voluntarios, es decir, sin un enfoque comercial, esto tiene ventajas y desventajas.

En primer lugar, las personas que se dedican a Debian tienen una alta motivación en participar en la misma, y se actualiza la distribución diariamente, apareciendo paquetes nuevos de software constantemente. Al mismo tiempo, existe un compromiso de calidad, no se desea distribuir software con errores. Por esta razón, se ha retrasó, por ejemplo, la versión 2.0 de Debian hasta que se han arreglado bugs, tanto por los problemas de pasar todos los programas a libc6 como de agujeros de seguridad que se hubieran descubierto entonces. Algo que, por ejemplo, RedHat^{15} no hizo en el mismo momento, habiéndose visto obligada a distribuir RedHat 5.1 inmediatamente después de 5.0 para arreglar muchos de los agujeros de seguridad existente en los programas con los que se distribuía.

En segundo lugar, dada su actitud abierta a la participación de todos, en el mismo espíritu original de Linux, constantemente hay personas que se unen a Debian para participar aportando su granito de arena, no solamente haciendo paquetes de programas, sino colaborando en el servidor de web, traduciendo documentación de Debian, documentando fallos, o ayudando a los usuarios, a través de listas de correo^{16} o de otras herramientas como la FAQ-o-matic^{17}, a resolver los problemas que tienen con la distribución. Este servicio es, sin duda, mucho más ágil, rápido y eficaz que el ofrecido en muchas ocasiones por las compañías de software.

8http://www.debian.org/News/weekly/2000/20000408 9http://www.debian.org/News/weekly/2000/20000302 10http://www.debian.org/News/weekly/1999/19990917 11http://www.debian.org/News/weekly/1999/19990421a 12http://www.debian.org/News/weekly/1999/19991020 13http://www.debian.org/News/weekly/1999/19991012 14http://www.debian.org/News/weekly/1999/19990225a 15http://www.redhat.com

En el lado de desventajas hay que decir que Debian tiene un mayor componente técnico que otras distribuciones. También, dada la naturaleza voluntaria de los desarrolladores, es posible que ciertos paquetes no estén tan actualizados como debieran, quizás porque sus desarrolladores han dejado de actualizarlos y nadie se ha hecho cargo. Sin embargo esto es algo que todos los desarrolladores tratan de evitar y, aunque cada desarrollador mantiene sus paquetes, no es raro que otro desarrollador (incluso un usuario) envíe una actualización del paquete para arreglar un problema o actualizarlo.

2 Organización

La organización de Debian puede parecer inexistente de cara a las personas que no conocen el grupo, pero esto no es así. Debian está amparada por una asociación sin ánimo de lucro llamada Software en el Interés Público^{18} (SPI), que tiene su sede en Estados Unidos y cuyo objetivo es ayudar a las organizaciones a desarrollar y distribuir software y hardware abierto. La asociación fue creada el 16 de junio de 1997, Debian no es el único proyecto apoyado por esta organización, también están:

• GNOME^{19} (GNU Network Object Model Environment) el proyecto que intenta desarrollar un entorno de escritorio dirigido al usuario sobre y con software libre.

• LSB^{20} (Linux Standard Base proyecto que desarrolla y promueve la definición de estándares que favorecen la compatibilidad entre distribuciones de Linux y que permiten a las aplicaciones funcionar en cualquiera de éstas. También coordina esfuerzos para animar a las compañías de software a desarrollar y portar aplicaciones a Linux.

• Open Hardware^{21} un sistema de certificación para hardware que permite a los desarrolladores controladores de dispositivos para sistemas operativos libres.

• Berlin^{22} un entorno de ventanas desarrollado por miembros de la comunidad del software libre que pretende desarrollar el entorno de usuario más flexible y más potente posible.

SPI gestiona las marcas registradas: Open Source, Open Hardware, y Debian.

Sin embargo, Debian tiene a su vez su propia organización, con un Presidente (actualmente Wichert Ackerman), un Secretario (Darren Benham) y un Comité Técnico; así como un gran número de personas encargados de distintas áreas del desarrollo de Debian, desde la producción de CDs, a la seguridad pasando por el sistema de seguimiento de errores (Bugs.

Y, a continuación, toda el grupo de desarrolladores que, de forma altruista al igual que los anteriores, donan parte de su tiempo para contribuir en la distribución. Estas contribuciones son de distintos tipos aunque, fundamentalmente se refiere a la creación de paquetes de programas que se incluyen en la distribución siguiendo la política de ésta. La facilidad con la que los nuevos desarrolladores pueden contribuir en la distribución y pueden introducir nuevos programas ha hecho, a lo largo de su historia, que Debian creciera en ambos aspectos.

Debian cuenta, en el momento de escribir este artículo, con cerca de 500 desarrolladores (consulte el mapa de desarrolladores^{23}) distribuidos por todo el globo. Evidentemente, no todos tienen el mismo nivel de compromiso, dentro de éstos hay personas dedicadas a trabajar en exclusiva para Debian (financiados por empresas externas) y personas que colaboran de forma esporádica.

Los desarrolladores toman las decisiones que sean necesarias para el funcionamiento del Proyecto, a través de un sistema de votaciones que se inauguró para votar su Constitución, y ha sido utilizado en muchas ocasiones: elección de nuevos presidentes, selección del logo, decisiones sobre la política de Debian, etc.. La gran mayoría de las discusiones se realizan a través de correo electrónico ya que es el único medio que puede permitir a tantas personas colaborar de forma organizada.

16http://www.debian.org/MailingLists

17http://www.debian.org/cgi-bin/fom

18http://www.spi-inc.org

19http://www.gnome.org

20http://www.linuxbase.org

21http://www.openhardware.org/

22http://www.berlin-consortium.org

23http://www.debian.org/devel/developers.loc

Los Desarrolladores Debian están involucrados en una gran variedad de tareas, incluyendo la administración del Servidor de Web^{24} y FTP^{25}, diseño gráfico, análisis legal de licencias de software, escribir documentación y, por supuesto, mantener paquetes de software.

En el interés de comunicar su filosofía y atraer desarrolladores que creen en los principios que Debian protege, el Proyecto Debian ha publicado un número de documentos que contienen nuestros valores y sirven como guías de lo que significa ser un Desarrollador Debian:

• El Contrato Social de Debian^{26} es una afirmación del compromiso de Debian a la Comunidad del Sofware Libre. Cualquier que esté de acuerdo en acogerse al Contrato Social puede convertirse en un desarollador^{27}. Cualquier desarrollador puede introducir nuevo software en Debian siempre que éste cumpla este criterio de software libre, y cumpla con sus éstandares de calidad.

• El documento Las Guías de Software Libre de Debian^{28} es un informe claro y conciso sobre los criterios de Debian sobre software libre. La DFSG es de gran influencia en el Movimiento del Software Libre, y proporciona las bases de la Definición Open Source^{29}.

• La Política de Debian Policy^{30}. es un especificación extensiva de los estándares de calidad del Proyecto Debian.

Los desarrolladores de Debian también están involucrados en otros proyectos; algunos específicos a Debian, otros en los que está involucrado parte o toda la comunidad Linux. Algunos ejemplos incluyen:

• El Linux Standard Base^{31} (LSB). El LSB es un proyecto que pretende estandarizar el sistema básico de Linux, lo que permitiría a desarrolladores de software y hardware ajenos a desarrollar fácilmente programas y controladores de dispositivos para Linux en general, más que para una distribución de Linux en particular.

• El Filesystem Hierarchy Standard^{32} (FHS) es un esfuerzo para estandarizar la distribución del sistema de ficheros de Linux. El FHS permitirá a desarrolladores de software a concentrar sus esfuerzos en diseñar programas, sin tener que preocuparse sobre cómo se instalará su paquete en diferentes distribuciones de Linux.

• Debian Jr.^{33} es nuestro proyecto interno, orientado hacia asegurarnos de que Debian tiene algo que ofrecer a nuestros usuarios más jóvenes.

Para más información general sobre Debian, vea las Preguntas Frecuentes de Debian^{34}.

3 La distribución

La combinación de la filosofía y metodología de Debian, las herramientas GNU, el núcleo de Linux, y otro software libre importante, forma una distribución de software única llamada Debian GNU/Linux. Esta distribución está formada por un gran número de paquetes. Cada paquete en la distribución contiene ejecutables, scripts, documentación, e información de configuración y tiene un mantenedor que es el principal responsable de mantener el paquete al día, seguir informes de error, y comunicar con los autores principales del software empaquetado. La gran base de usuarios, combinado con nuestro sistema de seguimiento de errores se asegura de que los errores se encuentren y arreglen rápidamente.

La atención de Debian al detalle permite producir un distribución de alta calidad, estable y escalable. La instalación puede configurarse fácilmente para servir muchos perfiles, desde cortafuegos reducidos a lo mínimo, estaciones de trabajo científicas a servidores de red de alta gama.

24http://www.debian.org/

25ftp://ftp.debian.org/

26http://www.debian.org/social_contract

27http://www.debian.org/doc/maint-guide/

28 http://www.debian.org/social_contract\#guidelines

29http://opensource.org/osd.html

30http://www.debian.org/doc/debian-policy/

31http://www.linuxbase.org/

32http://www.pathname.com/fhs/

33http://www.debian.org/devel/debian-jr/

34http://www.debian.org/doc/FAQ/

El sistema que distingue a Debian de otras distribuciones GNU/Linux es su sistema de gestión de paquetes. Estas herramientas dan al administrador de un sistema Debian control completo sobre los paquetes instalados en su sistema, incluyendo la capacidad de instalar un sólo paquete o actualizar el sistema operativo por completo. Los paquetes individuales también pueden protegerse para no ser actualizados. También puede decir al sistema de gestión de paquetes qué software ha compilado vd. mismo y qué dependencias cumple.

Para proteger su sistema contra caballos de troya y otros programas malévolos, Debian verifica que los paquetes provienen de sus mantenedores Debian auténticos. Los empaquetadores de Debian también ponen gran cuidado en configurarlos de forma segura. Si se declara un problema de seguridad con los paquetes entregados, los parches están por lo general rápidamente disponibles. Con el sencillo sistema de actualización de Debian, se pueden descargar e instalar arreglos de seguridad automáticamente a través de Internet.

El principal, y mejor, método para obtener soporte de un sistema Debian GNU/Linux y comunicarse con los Desarrolladores Debian es a través de las muchas listas de distribución^{35} mantenidas por el Proyecto Debian (hay más de 90 en el momento de escribir estas líneas).

4 La última estable: Debian 2.2

Todas las arquitecturas de Debian se basan, a partir de Debian 2.2, en el núcleo de Linux 2.2.16 (última versión estable). También está basada en la nueva versión 2.1.2 de la biblioteca C de GNU. Aunque la nueva glibc hace que los nuevos paquetes no se puedan instalar en la versión anterior, mantiene compatibilidad binaria hacia atrás con los viejos paquetes compilados con la glibc 2.0 de Debian versiones 2.1 y 2.0, y compatibilidad fuente prácticamente completa con esas fuentes antiguas.

En esta publicación, la mayoría de las utilidades básicas del sistema han empezado a usar PAM, los módulos de autentificación “enchufables” (‘Pluggable Authentication Modules’), que suministran a los administradores de sistemas un poderoso método de controlar el acceso al sistema y los métodos de autentificación. PAM permite administrar desde un único punto la autentificación y la gestión de cuentas. Si desea cambiar sus programas de autentificación a un esquema diferente (p. ej. OPIE, Kerberos, etc...) sólo necesita modificar los ficheros de configuración de PAM para esos programas, en lugar de recompilar el programa en si.

La publicación Debian 2.2 es la primera versión de Debian que incluye soporte completo para nuestros usuarios Japoneses, que tenían que usar paquetes adicionales de Debian JP hasta ahora para obtener soporte a caracteres multi-byte. Adicionalmente, se ha aumentado el nivel de internacionalización, y mejorado el soporte para la mayoría de los idiomas “no Latinos”. También se ha mejorado el soporte de idiomas europeos, con más y mejores traducciones a muchos idiomas.

El número de paquetes que incluye la distribución principal está ahora alrededor de 2500, aumentando en más de 50%, como es habitual (de hecho son 1200 paquetes nuevos). Algunos de los nuevos paquetes son:

• postfix. Un nuevo agente de transporte de correo seguro.

• openssh. Una implementación libre de la shell segura.

• openldap. Paquetes de cliente y servidor LDAP.

• w3m. Un nuevo navegador basado en texto, con soporte de tablas.

• gdm. El gestor de ventanas de GNOME.

• cvsup. Un sistema eficiente de réplicas para CVS.

• everybuddy. Un cliente de mensajería integrado.

• reportbug. Una herramienta para avisar de problemas a Debian GNU/Linux.

• zope. Un servidor de aplicaciones web para sitios dinámicos.

• xmms. El sistema de multimedia X.

• kaffe. Una máquina virtual para código Java libre, capaz de hacer JIT.

• gnapster. Un interfaz al popular sistema de compartición MP3.

• Y por último, pero no menos importante, 56 juegos nuevos.

35http://www.debian.org/MailingLists/

De los 800 paquetes actualizados se puede destacar:

• C Library 2.1.3

• XFree86 3.3.6

• GCC 2.95.2

• GnuPG 1.0.1

• Perl 5.005.03

• Python 1.5.2

• PAM 0.72

• ncurses 5.0

• teTeX 1.0.6

• Emacs 20.7

• XEmacs 21.1.10

• GNOME 1.0.56

Como pasó con la actualización de la publicación 2.0 a la 2.1, la mayoría de los cambios de 2.1 a 2.2 son incrementales. Se incluyen muchos paquetes nuevos y nuevas versiones de paquetes viejos, junto con una recompensa de nuevas características y corrección de errores. El mismo sistema de paquetes dpkg+apt se usa para realizar las actualizaciones, y nos hemos esforzado para hacer la transición tan indolora y sin problemas como ha sido posible.

apt, ahora en la versión 0.3.19, que se usa en conjunción con dpkg, ahora en la versión 1.6.13, es la herramienta de instalación de paquetes preferida, dado que tiene soporte para diferentes orígenes de paquetes (CD-ROMs y otros discos removibles, discos duros locales o montados a través de la red, o sitios remotos FTP o HTTP de Internet). Puede ser usado bien desde la línea de órdenes como apt-get, o como un método de adquisición de paquetes en dselect, para instalar paquetes binarios (o fuentes) nuevos o actualizarlos.

La distribución Oficial en CD-ROM son tres CD-ROMs de paquetes binarios, conteniendo las secciones “main” y “contrib”. Si un vendedor añade “non-US/main” o porciones de las secciones “non-free” o “non-US/non-free” a un conjunto de CDs, puede haber cuatro CDs de binarios.

El primer y segundo CD-ROM del conjunto, en las arquitecturas que lo soportan, son de arranque y se suelen usar para iniciar nuevas instalaciones.

Todos los CDs están auto-contenidos, lo que significa que puede insertar cualquiera de ellos y operar con sus contenidos, sin necesidad de andar tocando los otros. apt-cdrom se usa para gestionar múltiples CDs, bien a través de la interfaz de línea de órdenes, apt-cdrom, o el método de acceso apt para dselect.

El Proyecto Debian ha deseado siempre ser base de distribuciones más especializadas, y el pasado año este objetivo se ha realizado, con la adopción del sistema Debian como base de distribuciones de Linux comerciales. Entre otras compañías Corel Corporation, Libra Computer Systems, y Stormix Technologies están publicando distribuciones basadas en Debian; y se esperan otras. Además, se han publicado CDs de Debian GNU/Linux junto con distintos libros sobre Debian.

Por último, pero no menos importante, ésta última publicación ha sido dedicada^{36} a un miembro del proyecto que ha desaparecido recientemente, Joel Klecker, que murió de forma repentina a la edad de 21 años. Desde Julio de 1997, Joel había sido desarrollador de Debian, y durante la mayor parte de este tiempo había estado en cama debido a su enfermedad. La muerte de Joel es el resultado de una batalla durante toda su vida contra la Distrofia Muscular de Duchenne^{37}. Por ello, el nombre de la última versión es Debian 2.2 ’potato’ la distribución “Joel ’Espy’ Klecker”.

36ftp://ftp.debian.org/pub/debian/doc/dedication-2.2.txt

37http://mdausa.org

5 Conclusiones

Realmente puede haber muchos puntos a favor y en contra de Debian pero el mayor punto a favor de soportar Debian, haciendo uso de ésta, colaborando en la documentación, o aportando nuevos paquetes, es que se trata de un proyecto en el que tienen cabida todo tipo de iniciativas. A diferencia de otras distribuciones con interés comerciales, en las que se puede llegar a una división de recursos entre lo que sería en realidad, esencialmente, la misma distribución, esto no sucede en Debian.

Notorio es por ejemplo, el hecho de los esfuerzos duplicados en distribuciones derivadas de RedHat, como Esware, Hispafuentes, o Eurielec Linux, debido a la imposibilidad de contribuir los muchos esfuerzos realizados por las personas a la distribución “original” lo que tiene como resultado el desarrollo de productos divergentes. Debian es, al contrario, un punto de concentración. Si se quiere, se puede entender como una “enana blanca”, en lugar de explotar como una “supernova” extendiendo sus restos por el universo conocido, o llevar al olvido todo lo que pase próximo como haría un “agujero negro”; seguirá absorbiendo materia, gracias a su fuerte gravedad, y viviendo mucho, mucho más tiempo.

6 Más información

Puede encontrarse más información sobre el Proyecto Debian en :

• El servidor principal de Debian^{38}

• Lás páginas de la última versión estable^{39}

• Información sobre cómo conseguir Debian^{40}

• El proyecto de documentación de Debian^{41}

38http://www.debian.org

39http://www.debian.org/releases/stable/

40http://www.debian.org/distrib/

41http://www.debian.org/doc/ddp