GoboLinux DescargasDocumentaciónComunidadRecetasPaquetesCapturas de Pantalla


GoboLinux FAQ

Traducido por: Carlos Rica

¿Qué demonios es GoboLinux?

GoboLinux es una distribución de Linux que posee una nueva organización del sistema de archivos, que difiere de la organización tradicional heredada de Unix que tienen los sistemas Linux. Básicamente, esto significa que no está basada en directorios como /usr y /etc. La idea principal de esta jerarquía alternativa es almacenar todos los archivos pertenecientes a una aplicación en su propio subárbol independiente; De este modo, tenemos directorios como /Programs/FooPlayer/1.0/lib.

Para permitir al sistema encontrar estos archivos, éstos se agrupan lógicamente en directorios como /System/Links/Executables, el cual, como habrás adivinado, contiene enlaces simbólicos a todos los archivos ejecutables de la jerarquía Programs.

Para mantener compatibilidad hacia atrás con las aplicaciones tradicionales de Unix/Linux, existen enlaces simbólicos que imitan el árbol Unix, como "/usr/bin -> /System/links/Executables", y "/sbin -> /System/Links/Executables" (este ejemplo muestra que también se ha eliminado cualquier distinción arbitraria entre archivos de la misma categoría).

Aquí hay una introducción más visual.

¿Se ha rediseñado el árbol para hacerlo más fácil para principiantes?

No. De hecho, fue motivado para satisfacer las necesidades de usuarios que prefieren instalar aplicaciones a partir de los paquetes fuente originales en lugar de dejar que lo haga la distribución. Esta es la razón principal por la cual cada aplicación tiene su propio directorio: De este modo, puedes instalarla a partir del fuente y después borrarla con un "rm -rf". Así que, como se puede ver, GoboLinux ha sido diseñada para el usuario con experiencia a quien no le gusta que las cosas sean "automágicas". Nuestros scripts simplemente automatizan procesos, pero no "toman decisiones", y si alguna vez tienen que hacerlo, entonces preguntan primero.

La colección de paquetes binarios fue creada como una manera de evitar duplicación de esfuerzos entre los usuarios. El proyecto Compile fue creado para almacenar las "reglas de compilación" de los paquetes fuente originales de las aplicaciones, dado que no hay ningún estándar único sobre cómo compilar las aplicaciones en Linux. No deseamos introducir ningún "estándar de paquetes" como por ejemplo RPM. Pensamos que no hay ninguna necesidad de "paquetes" si el .tar.gz original está hecho apropiadamente. Por ejemplo, cuando una aplicación utiliza las GNU AutoTools (autoconf, automake...), compilar para GoboLinux es trivial; para casos no triviales, el proyecto Compile se encarga de acumular el conocimiento necesario sobre cómo se compilan las cosas.

De todas formas, al tener un árbol de directorios más lógico, GoboLinux es considerada con frecuencia una distribución conceptualmente más amigable, en tanto que su estructura es más lógica y menos oscurecida por limitaciones históricas. Pero no lo hacemos pensando en los principiantes como objetivo específico (al menos no a corto o medio plazo).

¿Está ya "lista" GoboLinux?

Sí, está lista en el sentido de que puedes, hoy, tener un sistema operativo completo corriendo 100% con GoboLinux, como ya están haciendo muchas otras personas de todo el mundo.

¿Cuál es su estado actual?

Esta pregunta puede dividirse en dos, una sobre el estado de las herramientas de GoboLinux y otra sobre la disponibilidad de paquetes.

GoboLinux depende de una serie de herramientas que automatizan varias tareas, como la generación, instalación y borrado de paquetes, y lo que es más importante, el mantenimiento de los enlaces simbólicos que hacen que el sistema siga consistente. Estas herramientas son ciertamente estables, puesto que tienen ya varios años en la actualidad.

Otro asunto importante cuando se utiliza una distribución es la disponibilidad de paquetes, es decir, software que puedes descargar en su forma binaria e instalarlo directamente sin complicaciones. En este aspecto, GoboLinux sigue detrás de otras distribuciones establecidas, puesto que no tenemos una gran comunidad de desarrolladores y no estamos basados en ninguna otra distribución como sí ocurre con otras distros, así que no tenemos ningún otro conjunto de paquetes para basarnos en ellos. Tenemos, sin embargo, todos los paquetes que se necesitan para tener un sistema corriendo (todos los paquetes que son parte de los proyectos "Linux From Scratch" y "Beyond Linux From Scratch, por ejemplo), más muchos otros, como KDE y todos sus paquetes relacionados, y la lista no hace más que crecer. Además, tenemos un conjunto incluso más amplio de recetas de compilación (compilation recipes) para su uso con la herramienta GoboLinux Compile, que permite crear paquetes a partir del fuente.

¿Quién creó GoboLinux? ¿Cuáles son sus orígenes?

El concepto fue creado por Hisham Muhammad. La primera versión de GoboLinux fue creada por Hisham y André Detsch.

GoboLinux ha madurado en un período de dos años. Inicialmente empezó como un método para instalar programas limpiamente dentro de una cuenta de usuario normal en la Universidad (como no teníamos disponible el verdadero árbol de Linux de todas maneras, fue una oportunidad para rediseñar este árbol).

Un día, después de la "Gran Caída del Sistema de Archivos" en la computadora de Hisham, él tuvo que reinstalar el sistema entero. Eso fue cuando vino la idea de utilizar, en el nuevo sistema, sólo el árbol alternativo (el cual, en el sistema previo a la caída, ya contenía cerca del 80% de todo el software instalado). André estuvo también considerando reinstalar su sistema Linux, así que él se pasó un fin de semana en su casa, y ejecutó el procedimiento entero de Linux From Scratch, cambiándolo para utilizar el árbol de directorios alternativo. El resultado fue humorísticamente llamado GoboLinux, y, como suele ocurrir en estos casos, al final se quedó con el nombre.

¿Quién desarrolla GoboLinux?

Desde su concepción (explicada en la respuesta anterior), empezamos a tener más y más usuarios, muchos de los cuales, siguiendo el verdadero espíritu del Software Libre, también acabaron contribuyendo en el proyecto. Como en todo proyecto, la gente va y viene, por lo que es imposible listar todos los nombres aquí, aunque se puede echar un vistazo a la página del equipo de desarrollo.

¿Cuáles son los objetivos de GoboLinux?

Nuestro objetivo principal es tener un sistema que disfrutemos usándolo, y que no sea destruido por un software de mantenimiento de paquetes que intenta administrar nuestra máquina por nosotros. La mayoría de las distribuciones de Linux intentan hacer la vida más fácil para el usuario novato, pero de esta manera están haciendo la vida mucho más difícil para el usuario más experimentado. No sostenemos que GoboLinux sea más fácil, solamente que "tiene más sentido". De todas formas, la gente que lo usa dice que es realmente más fácil de administrar, puesto que permite entender tu sistema mejor (si es que deseas entenderlo).

Como ellos dicen, "la dominación del mundo es sólo un objetivo secudario". :)

¿Hay alguna pérdida de rendimiento al utilizar enlaces simbólicos, que haga GoboLinux una mala opción para, digamos, servidores que soportan una fuerte carga?

Respuesta corta: Teóricamente sí, pero no, porque nunca lo hemos detectado (para saber porqué "teóricamente", léase "la respuesta larga").

Respuesta larga: El impacto real del uso de enlaces simbólicos es posiblemente menor del que piensas. En una distribución de Linux común, se accede ya a las bibliotecas a través de enlaces simbólicos. En GoboLinux, nuestros enlaces apuntan directamente al fichero real, así que hay únicamente un nivel de indirección para alcanzar una biblioteca.

Por ejemplo, consideremos libc.so.6. Este está en /lib, el cual es un enlace simbólico a /System/Links/Libraries, pero el fichero real está en /Programs/Glibc/Current, donde Current es un enlace a 2.2.3, y dentro del directorio lib de Glibc tenemos que ese libc.so.6 es de hecho un enlace a libc-2.2.3.so. Son muchos enlaces, ¿verdad? Sin embargo, las bibliotecas son accedidas de este modo: el directorio /System/Links/Libraries (que no es un enlace) es el único que se almacena en la configuración de ldconfig (y LD_LIBRARY_PATH). Allí libc.so.6 apunta directamente a /Programs/Glibc/2.2.3/lib/libc-2.2.3.so (y no hay ningún enlace en toda esa ruta). De este modo, tenemos exactamente un nivel de indirección, igual que en una distribución de Linux común. Puede que se *vean* muchos enlaces, pero están principalmente para facilitar el mantenimiento del sistema.

Las aplicaciones también están compiladas asignando a --prefix sus directorios "home" en /Programs/App/version, por lo que cuando un programa busca un archivo de datos nunca recorre enlaces. Alcanzar los ejecutables implica recorrer un enlace, pero, a diferencia de las distribuciones habituales de Linux, esta no tiene que buscar a través de los elementos del PATH (y en cualquier sistema moderno la representación en forma de árbol de un directorio está probablemente más optimizada que el recorrido de la shell a través de los elementos del $PATH. Desde luego, siempre está el hash de la shell, pero también, siempre está el caché del sistema de archivos).

¿Por qué se utiliza GoboHide? ¿No pueden modificar todos los programas para que vivan en la jerarquía de GoboLinux?

Nosotros les persuadimos para que traten con el árbol de GoboLinux a través de las opciones de compilación siempre que sea posible. Sin embargo, hay muchos programas que no pueden hacerlo completamente, teniendo rutas absolutas escritas directamente en el código fuente y quién sabe cuántas cosas más. Al final, cualquier software libre puede ser parcheado para adaptarse, pero no tenemos suficiente mano de obra para hacer esa tarea y mantenerla después. Esto sería, como poco, un engorro enorme, por lo que generalmente nos gusta reducir los parches aplicados al mínimo. Al menos /bin, /lib y /sbin son críticos. Hemos hecho tests en un entorno con "chroot" y es divertido ver todas las cosas extrañas que ocurren cuando faltan estos directorios.

¿Qué es /Depot? ¿Qué es /Files?

/Depot es un "área libre" para almacenar tus documentos, como archivos multimedia, material descargado, etc. Puedes pensar en ello como un "área comunitaria", un "home para todos los usuarios" (algunos sistemas UNIX tienen un directorio /pub para este propósito). GoboLinux como sistema ignora los contenidos de /Depot. Sólo existe para animar a los usuarios a almacenar sus ficheros temporales en un único lugar y mantener limpio el resto del sistema de ficheros.

/Files, por otro lado, es un directorio estándar de GoboLinux. Dentro de él, hay directorios como Fonts y Plugins, donde son almacenados los ficheros compartidos que requieren las aplicaciones, pero que no son necesariamente parte de ellas.

¿Quién es Gobo?

Exceptuando a Fibo, su leal servidor, nadie que lo haya visto sobrevivió para contarnos la historia. Aparte de eso, nunca nos hemos arriesgado a investigar más profundamente en el tema.

¿Qué tontería es esa?

No preguntes.

¿Lo decís en serio?

Por supuesto que no. :-) Puedes no hacer caso de las dos preguntas anteriores -- son solamente una de las muchas bromas internas del mundo GoboLinux. Gobo no exis-- eh, ¿qué es eso? AAAAAHHHH!!!!