GoboLinux es una distribución Linux cuya característica más destacada es una reorganización del sistema de archivos tradicional de Linux . En lugar de seguir el estándar de jerarquía de sistemas de archivos como la mayoría de los sistemas tipo Unix , cada programa en un sistema GoboLinux tiene su propio árbol de subdirectorios , donde se pueden encontrar todos sus archivos (incluidas las configuraciones específicas para ese programa). Por lo tanto, un programa "Foo" tiene todos sus archivos y bibliotecas específicos en , bajo la versión correspondiente de este programa en cuestión. Por ejemplo, la suite de compiladores GCC conocida comúnmente versión 8.1.0, residiría en el directorio ./Programs/Foo
/Programs/GCC/8.1.0
Según los desarrolladores de GoboLinux, esto da como resultado un sistema más limpio. [2]
La jerarquía de GoboLinux representa un cambio radical con respecto al sistema de archivos empleado tradicionalmente por la mayoría de los sistemas operativos tipo UNIX, en el que se almacenan tipos específicos de archivos juntos en subdirectorios estándar comunes (como /bin
los ejecutables y /etc
los archivos de configuración) y en el que se utilizan administradores de paquetes para realizar un seguimiento de qué archivo pertenece a qué programa. En GoboLinux, los archivos de cada programa se colocan en el subdirectorio dedicado de su programa respectivo. Los creadores de GoboLinux han dicho que "el sistema de archivos es el administrador de paquetes", y el sistema de paquetes de GoboLinux utiliza el propio sistema de archivos como una base de datos de paquetes. [3] Se dice que esto produce un árbol de directorios más sencillo y menos desordenado. GoboLinux utiliza enlaces simbólicos y un módulo de kernel opcional llamado GoboHide para lograr todo esto mientras mantiene una compatibilidad total con la jerarquía del sistema de archivos tradicional de Linux.
Los creadores de GoboLinux han declarado que su diseño tiene otros "modernismos", como la eliminación de algunas distinciones entre directorios tradicionales similares (como las ubicaciones de los ejecutables /bin
, /usr/bin
, y /usr/local/bin
). Los diseñadores de GoboLinux han afirmado que esto da como resultado que los scripts de shell se rompan con menos frecuencia que con otras distribuciones de Linux. Este cambio, introducido por GoboLinux en 2003, solo ha sido adoptado por otras distribuciones mucho más tarde: Fedora fusionó /bin y /usr/bin en 2012; [4] Debian habilitó la fusión /usr de forma predeterminada en 2018. [5]
GoboLinux también permite al usuario tener diferentes versiones del mismo programa instaladas simultáneamente (e incluso ejecutarlas simultáneamente). Además, se ha afirmado que el índice de administración de paquetes nunca podría desincronizarse con el sistema de archivos, porque las referencias a archivos inexistentes simplemente se convierten en enlaces rotos y, por lo tanto, se vuelven inactivos. Los cambios en el sistema de archivos de GoboLinux también permiten otras innovaciones, como un sistema de arranque basado en scripts completamente diferente que no utiliza sistemas de inicio de estilo System V o BSD o uno de sus reemplazos.
El diseño de GoboLinux estuvo influenciado por sistemas anteriores como NeXTSTEP , AtheOS y BeOS , todos los cuales adoptaron estructuras de sistema de archivos originales y al mismo tiempo mantuvieron un grado considerable de compatibilidad con Unix. En la raíz del árbol de GoboLinux hay cinco directorios: Programas, Usuarios, Sistema, Datos y Montaje.
Compile es un programa que descarga, descomprime, compila archivos tar de código fuentee instala el código ejecutable resultante, todo con un solo comando (comoCompile foo
) utilizando scripts de compilación simples conocidos como "recetas". [6]
El sistema Compile es algo similar al sistema Portage de Gentoo, [7] que se basa en la colección de Ports de FreeBSD . Sin embargo, Portage está diseñado para una jerarquía de sistemas de archivos tradicional, compatible con el estándar de jerarquía de sistemas de archivos , mientras que Compile extiende la capacidad de la jerarquía de sistemas de archivos distintiva de GoboLinux al área de administración de paquetes. Por lo tanto, en GoboLinux, el sistema de archivos en sí mismo sirve naturalmente como una especie de base de datos de administración de paquetes. [8]
El programa Compile fue introducido en la versión 011 de GoboLinux. Antes de eso, hubo discusiones sobre portar el sistema Portage de Gentoo a GoboLinux y desarrollar el puerto como un proyecto de SourceForge.net bajo el nombre de GoboPortage . [9] [10]
Otras características de Compile incluyen:
Las versiones se han numerado utilizando el sistema de base octal . Según los autores, se eligió este esquema porque mantiene el típico cero inicial que está presente en muchos números de versión de software libre (ya que un cero inicial a menudo indica que un número es octal), y es un juego de palabras con la " carrera de números de versión " que ocurrió entre las distribuciones de Linux alrededor de 1999. Cuando se leen como números decimales, el uso de números octales causa un "salto de versión" determinista cada ocho versiones. Hasta la versión 013, GoboLinux no hizo "versiones puntuales", para evitar la implicación de que algunas versiones eran más estables que otras. Esta tradición se rompió con la versión 014.01, una actualización de la 014 enfocada en la corrección de errores .
GoboLinux está actualmente desarrollado para x86-64 . Fue creado oficialmente solo para i686 hasta la versión 015, pero en un momento se realizó un port incompleto para i386 . También se han realizado ports para arquitecturas embebidas, como ARM y SuperH ; estas tareas se lograron con Bootstrap, [12] una herramienta desarrollada especialmente para automatizar la creación de ports.
LWN.net revisó GoboLinux 010 en 2004: [13]
Resulta que el proyecto GoboLinux ha estado haciendo exactamente eso: reorganizar los directorios y archivos en una nueva estructura. Todo comenzó con uno de los desarrolladores que trabajaba en un sistema en el que no tenía privilegios de superusuario, pero aún así necesitaba compilar programas. Para evitar dificultades durante la actualización, colocó programas individuales en sus propios directorios y los nombró de acuerdo con los nombres de los programas relevantes, por ejemplo, ~/Programs/AfterStep. Otras partes de los programas se colocaron en directorios identificados de manera similar, como ~/Libraries, ~/Headers, etc. También se desarrollaron scripts personalizados para la compilación automática de estos programas y la colocación correcta de los componentes individuales.
Linux.com escribió una reseña sobre GoboLinux 013: [14]
No hace falta decir que este tipo de jerarquía ayuda a la gestión de paquetes. Los usuarios pueden instalar y utilizar varias versiones del mismo programa o bibliotecas del sistema. De hecho, cuando GoboLinux cambió a la versión 3 de GNU Compiler Collection (GCC), siguió manteniendo en funcionamiento los programas más antiguos, ya que el sistema de archivos permite que varias bibliotecas coexistan en paz. Además, la desinstalación es simplemente una cuestión de eliminar el directorio del programa.
Jesse Smith de DistroWatch Weekly revisó GoboLinux 015: [15]
Al arrancar desde el medio GoboLinux, aparece una pantalla con menús de texto. Mediante estos menús, se nos pide que seleccionemos nuestro idioma preferido de una lista y que elijamos la distribución de nuestro teclado. A continuación, se nos presenta una consola de texto en la que iniciamos sesión como usuario "gobo". Las instrucciones en pantalla nos indican cómo abrir una interfaz gráfica de usuario y cómo iniciar el instalador del sistema. El entorno gráfico resulta ser el gestor de ventanas Enlightenment. En el escritorio hay iconos para ejecutar el gestor de particiones GParted y el instalador del sistema. En la parte inferior de la pantalla encontramos un menú de aplicaciones, un selector de tareas y una bandeja del sistema.
Smith también revisó GoboLinux 016. [16]
Gobo es un personaje ficticio. No se sabe mucho sobre él, porque quienes lo vieron nunca sobrevivieron para contar información sobre él.
También tiene un sirviente leal ficticio llamado Fibo . La mascota de GoboLinux, Que, es un pingüino que viste la ropa de Fibo . [17]
Aparte de Fibo, su fiel sirviente, nadie que lo haya visto sobrevivió para contar la historia. Más allá de eso, nunca nos arriesgamos a profundizar más en el tema". No, la mascota se llama Que. Es un pingüino que viste la ropa de Fibo.