GoboLinux es un sistema operativo de código abierto 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 del sistema de archivos como la mayoría de los sistemas similares a 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). Así, un programa "Foo" tiene todos sus archivos y bibliotecas específicos en la versión correspondiente de este programa. Por ejemplo, el conjunto de compiladores GCC comúnmente conocido, versión 8.1.0, residiría en el directorio . /Programs/Foo
/Programs/GCC/8.1.0
Familia OS | Tipo Unix |
---|---|
Estado de trabajo | Activo [1] |
Modelo fuente | Fuente abierta |
Versión inicial | 2003 |
Último lanzamiento | 017/24 de mayo de 2020 |
Disponible en | Alemán , inglés, húngaro , portugués , español |
Plataformas | x86-64 |
Tipo de grano | Monolítico ( Linux ) |
Interfaz de usuario predeterminada | Impresionante |
Licencia | Licencia pública general GNU |
Página web oficial | gobolinux |
Según los desarrolladores de GoboLinux, esto da como resultado un sistema más limpio. [2]
Descripción general
La jerarquía de GoboLinux representa una desviación radical del sistema de archivos empleado tradicionalmente por la mayoría de los sistemas operativos similares a UNIX, donde tipos específicos de archivos se almacenan juntos en subdirectorios estándar comunes (como los /bin
ejecutables y /etc
los archivos de configuración) y donde los administradores de paquetes se utilizan 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 sistema de archivos como 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 se mantiene una compatibilidad total con la jerarquía del sistema de archivos tradicional de Linux.
Los creadores de Gobolinux han afirmado que su diseño tiene otros "modernismos", tales como la eliminación de algunas distinciones entre los directorios tradicionales similares (como la ubicación 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 combinación / usr de forma predeterminada en 2016. [5]
GoboLinux también permite al usuario tener diferentes versiones del mismo programa instaladas al mismo tiempo (e incluso ejecutarlas al mismo tiempo). 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 completamente nuevo que no utiliza sistemas de inicialización de estilo System V o BSD .
Jerarquía de archivos
El diseño de GoboLinux fue influenciado por sistemas anteriores como NeXTSTEP , AtheOS y BeOS , todos los cuales adoptaron estructuras de sistemas de archivos originales mientras mantenían un grado considerable de compatibilidad con Unix. En la raíz del árbol de GoboLinux, hay seis directorios: Programas, Usuarios, Sistema, Archivos, Montaje y Depósito. El contenido de cada uno se describe a continuación.
- / Programas / : este directorio contiene un directorio para cada programa instalado en el sistema. El directorio de cada programa, a su vez, contiene uno o más directorios de versión y, opcionalmente, subdirectorios de Configuración y Variables. Ejemplos de rutas en programas son
/Programs/Bash/3.0/bin/bash
y/Programs/Xorg-Server/Settings/X11/xorg.conf
. - / Users / : este directorio contiene el directorio de inicio de cada usuario; un usuario "harley" tiene
/Users/harley
como directorio de inicio. - / System / - Archivos de sistema cruciales. La mayoría son administrados por aplicaciones del sistema (por ejemplo,
/System/Settings/passwd
) y scripts GoboLinux (por ejemplo,/System/Index
).- / Index / - El índice del sistema de archivos: contiene directorios con enlaces simbólicos a archivos desde
/Programs
entradas, como:- bin / : contiene enlaces a archivos de los
bin
directorios de cada programa . - include / : este directorio contiene enlaces a archivos del
include
directorio de cada programa . - lib / : enlaces a archivos del
lib
directorio de cada programa . - share / - Vínculos a archivos del
share
directorio de cada programa .
- bin / : contiene enlaces a archivos de los
- Entorno / : enlaces a archivos de entorno. Estos se compilan en un archivo de caché y el shell los carga, lo que permite que cada programa registre sus propias variables de entorno .
- Tareas / : enlaces a las tareas de arranque de cada programa desde su
Resources/Tasks
directorio. - Configuración / - Archivos de configuración y enlaces a archivos del
Settings
directorio de cada programa .- BootScripts / : secuencias de comandos que se utilizan durante el inicio del sistema. Este es un enlace simbólico al directorio
Settings/BootScripts
bajo/Programs/BootScripts
.
- BootScripts / : secuencias de comandos que se utilizan durante el inicio del sistema. Este es un enlace simbólico al directorio
- Variable / : archivos de registro, temporales, transitorios y de cola multipropósito.
- tmp / : archivos temporales.
- Kernel / : directorios relacionados con el kernel.
- Boot / : programas y archivos de configuración utilizados durante el arranque del sistema operativo. Aquí es donde se encuentran la imagen del kernel y los archivos de configuración del cargador de arranque.
- Dispositivos / - Archivos de dispositivos (administrados por Udev).
- Módulos / : contiene los distintos módulos del kernel, organizados según la versión del kernel.
- Objetos / : proporciona una vista del árbol de dispositivos del kernel (introducido con el sistema de archivos sysfs en la serie 2.6 del kernel).
- Estado / - Archivos de estado del kernel (gestionados por el
proc
sistema de archivos).
- / Index / - El índice del sistema de archivos: contiene directorios con enlaces simbólicos a archivos desde
- / Archivos / : los archivos contienen datos estructurados que utilizan los programas, pero que no forman parte de los programas en sí. Esos archivos suelen ser entidades independientes como fuentes, códecs y complementos (y, como tales, supuestamente no requieren administración de paquetes). Además, cada programa puede definir sus propios subdirectorios para almacenar datos específicos del sitio; por ejemplo, Compile (la herramienta de interfaz de usuario de compilación de paquetes GoboLinux) hace esto.
- / Mount / : punto de montaje para sistemas de archivos locales o remotos adicionales. Los subdirectorios comunes son
CD-ROM
yPhone
.
Programa "Compilar"
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 de compilación es algo similar al sistema Portage de Gentoo , [7] que se basa en la colección FreeBSD Ports . Sin embargo, Portage está hecho 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 del administrador de paquetes. [8]
El programa Compile se introdujo en la versión 011 de GoboLinux. Antes de eso, hubo discusiones sobre la migración del sistema Portage de Gentoo a GoboLinux y el desarrollo del puerto como un proyecto de SourceForge.net con el nombre de GoboPortage . [9] [10]
Otras características de Compile incluyen:
- El uso del sitio de descarga propio de cada programa.
- El repositorio de la distribución (o uno de sus espejos) solo se usa para descargar recetas. Las recetas se pueden descargar sobre la marcha o por lotes.
- Scripts de compilación minimalistas y orientados a declaraciones
- El software típico "configure; make; make install" puede estar escrito en dos líneas, lo que facilita enormemente el mantenimiento.
- Soporte de dependencias estilo GoboLinux
- El software compilado "a mano" por el usuario se tiene en cuenta mediante un mecanismo de detección.
- Agnosticismo de caminos
- También funciona en una instalación de GoboLinux sin raíz (es decir, dentro de un directorio de inicio de cualquier otra distribución). [11]
Diferencias con las distribuciones tradicionales
Jerarquía de archivos
En la jerarquía de GoboLinux, los archivos se agrupan en categorías funcionales en una estructura similar a un índice utilizando enlaces simbólicos, enraizados en /System/Index
: Todos los ejecutables son accesibles debajo /System/Index/bin
, todas las bibliotecas son accesibles debajo /System/Index/lib
, y así sucesivamente. Esto elimina muchas distinciones tradicionales en el Estándar de jerarquía del sistema de archivos , como la distinción entre los archivos no esenciales almacenados /usr
y los archivos de emergencia esenciales almacenados directamente en subdirectorios del directorio raíz. Los desarrolladores de GoboLinux han sostenido que, aunque estas distinciones alguna vez fueron muy útiles, ya no son necesarias bajo el esquema de GoboLinux.
Enlaces simbólicos
Hay enlaces simbólicos que relacionan la mayoría de los directorios habituales de Unix con el árbol de GoboLinux. Por lo tanto, uno puede encontrar directorios como /etc
, /var/log
y /usr/bin
en los lugares previstos. Estos enlaces simbólicos apuntan al equivalente funcional en el /System/Index
árbol; por lo tanto, los nombres de ruta tradicionalmente cruciales (como /bin/sh
y /etc/passwd
) se resuelven correctamente. Estos directorios de compatibilidad se ocultan a la vista mediante una modificación del kernel personalizada llamada GoboHide , que implementa el soporte para archivos ocultos en Linux; se utiliza únicamente por motivos estéticos y, por tanto, es una característica opcional.
Sistema de arranque
GoboLinux usa su propio procedimiento de inicialización, a diferencia de la mayoría de las distribuciones de Linux que usan un BSD o un procedimiento System V. En /System/Settings/BootScripts
hay algunos archivos que controlan todo el procedimiento de arranque: BootUp
y se Shutdown
ejecutan en el arranque y apagado del sistema, respectivamente; además, es posible definir scripts de "nivel de ejecución" para especificar diferentes formas en que se puede inicializar el sistema (por ejemplo, Single
para un solo usuario, Multi
para varios usuarios, Graphical
para arrancar en modo gráfico, etc.); esto se puede controlar desde el menú del cargador de arranque. El /System/Settings/BootOptions
archivo separa la configuración específica del sitio del resto de los scripts. Las tareas específicas de la aplicación se pueden encontrar en /System/Tasks
; pueden ser llamados por los scripts de arranque.
Lanzamientos
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 en la " carrera de números de versión "Eso sucedió entre las distribuciones de Linux alrededor de 1999. Cuando se lee como números decimales, el uso de números octales provoca un" salto de versión "determinista cada ocho versiones. Hasta la versión 013, GoboLinux no hizo "lanzamientos puntuales", para evitar la implicación de que algunos lanzamientos eran más estables que otros. Esta tradición se rompió con la versión 014.01, una actualización de 014 centrada en la corrección de errores .
- 017-24 de mayo de 2020
- 016-15 de diciembre de 2016: presenta Runner, una nueva herramienta para la virtualización de sistemas de archivos sin contenedores. Versión 4.8.2 del kernel de Linux, impresionante escritorio WM.
- 015 - 7 de mayo de 2014: presenta la jerarquía / System / Index . Versión del kernel de Linux 3.14.2, escritorio Enlightenment 18.
- 015-beta - 4 de marzo de 2014
- 015-alpha - 21 de enero de 2014
- 014.01 [12] - 30 de marzo de 2008: actualizaciones de 014, con correcciones de errores y algunas actualizaciones de paquetes.
- 014 - 31 de diciembre de 2007: incluye actualizaciones de paquetes, corrección de errores y nuevas versiones de las herramientas de administración de GoboLinux.
- 013 - 2 de noviembre de 2006: presenta Listener , una herramienta para escuchar los eventos del sistema de archivos y asignar acciones para que se realicen automáticamente.
- 012 - 6 de junio de 2005: presenta Manager , una herramienta de administración de sistemas gráficos.
- 011 - 7 de junio de 2004: presenta Compile , la herramienta de compilación de paquetes GoboLinux.
- 010 - 7 de enero de 2004: agrega un instalador gráfico accesible a través del entorno de escritorio de Live CD .
- 007 - 22 de octubre de 2003: agrega un directorio de metadatos por paquete llamado
Resources
. - 006 - 9 de mayo de 2003: introduce GoboHide y adopta una instalación de programas en espacio aislado .
- 005 - 2003: Presenta GoboLinux al mundo.
- Las versiones anteriores a la versión 005 fueron utilizadas únicamente por el grupo inicial de desarrolladores.
Puertos
GoboLinux está desarrollado actualmente para x86-64 . Se hizo oficialmente para el i686 solo hasta el lanzamiento 015, pero en un momento se realizó un puerto incompleto para el i386 . También se han realizado adaptaciones a arquitecturas integradas, como ARM y SuperH ; estas tareas se lograron con Bootstrap, [13] una herramienta desarrollada especialmente para automatizar la creación de puertos.
Recepción
LWN.net revisó GoboLinux 010 en 2004: [14]
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 trabajando en un sistema en el que no tenía privilegios de superusuario, pero aún necesitaba compilar programas. Para evitar dificultades al actualizar, colocó programas individuales en sus propios directorios y los nombró de acuerdo con los nombres de programas relevantes, por ejemplo, ~ / Programas / AfterStep. Otras partes de los programas entraron en directorios identificados de manera similar, como ~ / Libraries, ~ / Headers, etc. También se desarrollaron scripts personalizados para la compilación automatizada de estos programas y la colocación correcta de componentes individuales.
Linux.com escribió una reseña sobre GoboLinux 013: [15]
No hace falta decir que este tipo de jerarquía ayuda en 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 la Colección de compiladores GNU (GCC), aún mantenían en ejecución los programas más antiguos, ya que el sistema de archivos permite que varias bibliotecas existan juntas en paz. Además, la desinstalación es solo una cuestión de eliminar el directorio del programa.
Jesse Smith de DistroWatch Weekly revisó el GoboLinux 015: [16]
Al arrancar desde los medios de GoboLinux, aparece una pantalla con menús basados en texto. Al usar estos menús, se nos pide que seleccionemos nuestro idioma preferido de una lista y elija la distribución de nuestro teclado. Luego se nos presenta una consola de texto donde iniciamos sesión como el usuario "gobo". Las instrucciones en pantalla nos dicen cómo abrir una interfaz gráfica de usuario y cómo iniciar el instalador del sistema. El entorno gráfico resulta ser el administrador de ventanas de Enlightenment. En el escritorio hay iconos para ejecutar el administrador 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. [17]
Referencias
- ↑ Distrowatch (27 de marzo de 2020). "El estado del proyecto figura como activo a partir del viernes 27 de marzo de 2020 02:30 UTC" . Consultado el 27 de marzo de 2020 .
- ^ Hisham Muhammad (9 de mayo de 2003). "El árbol de Unix repensado: una introducción a GoboLinux" . Consultado el 17 de marzo de 2008 .
- ^ Marc Weinem (13 de marzo de 2008). "Gestión de paquetes simplificada en GoboLinux - una entrevista con Lucas Villa Real" . Consultado el 31 de marzo de 2008 .
- ^ Proyecto Fedora (2012-03-29). "/ Usr Move" . Consultado el 30 de diciembre de 2016 .
- ^ Debian (21 de octubre de 2016). "registro de cambios debootstrap 1.0.85" . Consultado el 30 de diciembre de 2016 .
- ^ Mayank Sharma (14 de febrero de 2007). "Receta de GoboLinux para una deliciosa gestión de paquetes" . Linux.com . Archivado desde el original el 17 de septiembre de 2008 . Consultado el 19 de julio de 2009 .
- ^ "Compilación de GoboLinux: ¿un portage escalable?" . Slashdot . 2004-06-05 . Consultado el 19 de julio de 2009 .
- ^ "Las ideas detrás de la compilación " . GoboLinux. Archivado desde el original el 13 de junio de 2010 . Consultado el 19 de julio de 2009 .
- ^ Foros de Gentoo: Ver tema - GoboGentoo
- ^ SourceForge.net: GoboPortage
- ^ Mayank Sharma (21 de agosto de 2007). "GoboLinux: una entrevista con Lucas Villa Real" . Consultado el 31 de marzo de 2008 .
- ^ Thom Holwerda (4 de abril de 2008). "GoboLinux 014.01 lanzado" . Consultado el 4 de abril de 2008 .
- ^ GoboLinux integrado
- ^ GoboLinux - Diversión con la jerarquía del sistema de archivos [LWN.net]
- ^ Receta de GoboLinux para una deliciosa gestión de paquetes | Linux.com | La fuente de información de Linux
- ^ DistroWatch Weekly, número 562, 9 de junio de 2014
- ^ DistroWatch Weekly, número 696, 23 de enero de 2017
enlaces externos
- Página web oficial
- GoboLinux en DistroWatch
- Gobolinux en GitHub