GoboLinux

GoboLinux es una distribución GNU/Linux que posee una característica destacable en su reorganización de la jerarquía del sistema de ficheros. En GoboLinux, cada programa tiene su propio árbol de subdirectorios, donde se encuentran todos sus ficheros.

La jerarquía de GoboLinux es radicalmente diferente comparada con la jerarquía de sistema de archivos tradicionalmente empleada por la mayor parte de las distribuciones Linux y clones-(UNIX), donde los tipos específicos de archivos son almacenados juntos en comunes subdirectorios estándar (como p.ej. bin y man), y los gestores de paquetes son usados para mantener una pista hacia el archivo que pertenece a algún programa.

Revisión 

En GoboLinux, los archivos de programas diferentes son separados en diferentes subdirectorios. Mientras en los archivos tipo GoboLinux también son separados en subdirectorios, aunque éstos son alineados dentro de los subdirectorios de sus programas.

Los fabricantes de GoboLinux dicen que "el sistema de archivos es el gestor de paquetes", y el Sistema de gestión de paquetes de GoboLinux se usa a sí mismo como una base de datos de paquetes. Esto produce un más sencillo y menos desordenado árbol de directorios. GoboLinux usa symlinks y un (opcional y cosmético) núcleo llamado "GoboHide" para alcanzar todo esto manteniendo una alta compatibilidad con la jerarquía de sistema de archivos tradicional Linux.

La jerarquía de Gobolinux tiene beneficios adicionales, por ejemplo, este remueve algunas distinciones entre los tradicionales directorios (como las ubicaciones de los ejecutables /bin, /usr/bin, y /usr/local/bin). Los diseñadores de GoboLinux afirman que esto causa que los scripts o guiones de shell se decifren en códigos, a menudo, con menos frecuencia que en otras distribuciones Linux.

GoboLinux también permite al usuario tener instaladas diferentes versiones de un mismo programa de forma simultánea (y aún controlarlos simultáneamente). Además, el índice de gestión de paquetes nunca puede salir de la sincronización, como referencias para archivos no existentes, los que simplemente son enlaces rotos, y así inactivos. Los cambios del sistema de archivos de GoboLinux también han permitido otras innovaciones, como un nuevo sistema de autoarranque que no usa los utilizados en System V o BSD como estilos de sistemas init.

La jerarquía del sistema de archivos de GoboLinux 

El diseño de GoboLinux está influenciado por los primeros sistemas como NEXTSTEP, AtheOS y BeOS, los cuales adoptaron estructuras originales de sistemas de archivos, mientras aún mantenían un considerable grado de compatbilidad con Unix. 
En la raíz / (root en inglés) del árbol, hay seis directorios principales:
Programas (Programs)
Usuarios (Users)
Sistema (System)
Archivos (Files)
Montaje (Mount)
Depósito (Depot)

Descripción de cada directorio

Compile (sistema de compilación de GoboLinux) 
Compile, el sistema de compilación en GoboLinux , introducido en la versión 0.11, descarga, desempaqueta, compila e instala desde tarballs con un único comando ("Compile foo"), utilizando scripts de compilación simple, conocidos como "recipes" (del inglés recetas).

Los parámetros de comparación han sido establecidos entre el compilador de GoboLinux' y el sistema Portage de Gentoo (el cual está, a su vez, basado en la colección Ports de FreeBSD), el cual lleva a cabo sus renombradas acciones con scripts conocidos como "ebuilds". Sin embargo, a diferencia del Portage  (que está hecho para una jerarquía de sistema de archivos tradicional, compatible con FHS), Compile amplía la capacidad de la jerarquía de sistema de archivos distintiva de GoboLinux en el área de la administración de paquetes. Así, en GoboLinux, el sistema de archivos es el Sistema de gestión de paquetes. Para ver sus características, se puede leer el artículo: "Las Ideas Detrás de Compile".<ref>[http://gobolinux.org/index.php?page=doc/articles/compile "Las Ideas Detrás de Compile"]  (en inglés)</ref>

Antes de que se realizara Compile, en los foros oficiales de Gentoo se discutió sobre la posibilidad de que terceros porten el sistema Portage de Gentoo que luego se desarrolló como un proyecto de Sourceforge, bajo el nombre de GoboPortage.GoboPortage en Sourceforce.netUsa los propios sitios de descargada de los proyectos: El repositorio de la distribución (o uno de sus espejos) sólo es usado para descargar recetas. Las recetas pueden ser descargadas sobre la marcha o en lotes.Usa scripts de compilación minimalistas en su orientación y declaración: Lo típico "configure; make; make install"; software puede ser escrito en dos líneas,  aliviando enormemente el mantenimiento.Soporta dependencias estilo GoboLinux : El software compilado "a mano" por el usuario es tenido en cuenta por el mecanismo de detección.No interesa el path (ruta) de diseño: También funciona en una instalación Rootless (desarraigada) de GoboLinux, esto es, dentro un directorio $HOME de cualquier otra distribución.

 Diferencias entre GoboLinux y las distribuciones tradicionales 

 Sistema de ficheros 

En la jerarquía de GoboLinux, los archivos son agrupados por su categoría funcional, en una estructura de índice, usando enlaces simbólicos, enrutados a /System/Link: Todos los ejecutables son accesibles bajo /System/Links/Executables, todas las librerías son accesibles bajo /System/Links/Libraries, etc.

Esto elimina las distinciones tradicionales en el Estándar de Jerarquía de Sistema de Ficheros, tal como la distinción hecha entre archivos almacenados no esenciales en /usr y los esenciales, archivos de emergencia almacenados directamente en subdirectorios del directorio raíz (/).

Los desarrolladores mantienen eso, aunque estas distinciones fueron una vez muy prácticas, ellas no son necesarias en nuestro ambiente radicalmente diferente moderno.

 Enlaces simbólicos 

Hay enlaces simbólicos que relacionan los directorios más usados en Unix hacia el árbol de GoboLinux. Por tanto, uno puede encontrar directorios tales como /etc, /var/log y /usr/bin en lugares determinados. Estos puntos de enlaces simbólicos para funcionalidades equivalentes bajo /System/Links, así que nombres y rutas cruciales tales como /bin/sh y /etc/passwd están resueltos corectamente. Estos directorios de compatibilidad están ocultos de la vista usando una modificación del núcleo llamada Gobohide, esta modificación, la cual implementa soporte para archivos escondidos en Linux, es usada solo por razones estéticas y es opcional

 Sistema de arranque 

A diferencia de la mayoría de las distribuciones Linux, GoboLinux no usa un proceso de iniciación (init), estilo BSD o System V, utilizando en cambio un procedimiento específico de GoboLinux. En /System/Settings/BootScripts hay unos pocos archivos que comandas el proceso de arranque: El BootUp y el Shutdown corren el sistema de arranque y el de apagado, respectivamente; adicionalmente, es posible definir un script de nivel de ejecución (runlevel) para especificar diferentes vías para que el sistema pueda inicializar (por ejemplo, Single para una sesión de usuario único, Multi para una sesión multiusuario, Graphical para un arranque en modo gráfico, etc) y controlar lo que provenga de la carga del menú de arranque. El archivo /System/Settings/BootOptions separa las configuraciones específicas del sitio del resto de scripts. Tareas de aplicaciones específicas pueden ser encontradas en /System/Links/Tasks y llamadas por los scripts de arranque.

 Versiones 

Las versiones son numeradas usando el sistema de base octal. La razón para esta numeración es dada, según sus autores, por tres motivos: mantiene el típico cero presente en muchos números de versión de softwares libres (ya que un cero inicial es el indicador de números octales en el lenguaje de programación C); no tiene puntos, y por lo tanto no hay "versiones menores"; y es un chiste sobre lo fenómeno de "saltos de versiones", puesto que, cuando son leídos como números decimales, los números octales causan un salto determinista cada ocho versiones.

 016 - : introducido Runner, una herramienta de virtualización del sistema de ficheros. Primera versión para x86-64.
 015 - : introducido la jerarquía /System/Index
 014 - : nueva versión estable, conteniendo actualizaciones de paquetes, reparos de bugs y nuevas versiones de las herramientas de gerencia de GoboLinux.
 013 - : introducido Listener, una herramienta para escuchar eventos del sistema de ficheros e atribuir a ellos acciones a ser ejecutadas automáticamente
 012 - : introducido Manager, una herramienta gráfica para la administración del sistema.
 011 - : introducido Compile, la herramienta de compilación de paquetes de GoboLinux.
 010 - : añadido un instalador gráfico accesible desde el entorno de escritorio del LiveCD.
 007 - : añadido Resources, un directorio de metadatos por paquete.
 006 - : introducido GoboHide, adoptada instalación de programas con una sandbox.
 005 - 2003: primero versión pública lanzada en línea.
 Versiones anteriores a la 005 fueron usadas solamente por el grupo de desarrolladores inicial.

 Portabilidad 

A marzo de 2006, Gobolinux sólo está disponible oficialmente para la arquitectura i686 y la traducción a la arquitectura i386 es específica del dominio (así, incompleta). No obstante, en 2003, Hisham Muhammad, el principal desarrollador del proyecto GoboLinux', escribió una «Guía de Portabilidad Rápida y Sucia» ("Quick-and-Dirty Porting Guide") para aquellos quienes quisieran portar la distribución a la plataforma PowerPC (entre otras arquitecturas). También trabaja para portarla él mismo. Se portó también a arquitecturas embebidas, tales como ARM y SuperH, lo que se logró fácilmente luego del lanzamiento de Bootstrap, una herramienta desarrollada específicamente para automatizar el proceso de portar la distribución.

 Notas y referencias 

 Véase también 
Filesystem Hierarchy Standard

 Enlaces externos 

 Sitio web oficial de GoboLinux (en inglés) Sitio web oficial de GoboLinux (en español)  (en inglés)''
 The Unix tree rethought: an introduction to GoboLinux, por Hisham Muhammad también conocido como "LodeRunner" en Kuro5hin.org
 , por Mayank Sharma en Linux.com
 DSFH filesystem layout

Distribuciones Linux basadas en el código fuente
Distribuciones GNU/Linux de Brasil