# GoboLinux

GoboLinux és una distribució de Linux la característica més destacada de la qual és una reorganització del sistema de fitxers Linux tradicional. En lloc de seguir l'⁣estàndard de jerarquia del sistema de fitxers com la majoria de sistemes semblants a Unix, cada programa d'un sistema GoboLinux té el seu propi arbre de subdirectori, on es poden trobar tots els seus fitxers (incloent-hi la configuració específica d'aquest programa). Així, un programa "Foo" té tots els seus fitxers i biblioteques específiques a /Programs/Foo, sota la versió corresponent d'aquest programa disponible. Per exemple, la versió 8.1.0 del conjunt de compiladors GCC residiria al directori /Programs/GCC/8.1.0.
Segons els desenvolupadors de GoboLinux, això resulta en un sistema més net.

## Visió general

La jerarquia de GoboLinux representa una desviació radical del sistema de fitxers utilitzat tradicionalment per la majoria dels sistemes operatius semblants a UNIX, on els tipus específics de fitxers s'emmagatzemen junts en subdirectoris estàndard comuns (com /bin per als executables i /etc per als fitxers de configuració) i on els gestors de paquets són utilitzats per fer un seguiment de quin fitxer pertany a quin programa. A GoboLinux, els fitxers de cada programa es col·loquen al subdirectori dedicat del seu respectiu programa. Els creadors de GoboLinux han dit que "el sistema de fitxers és el gestor de paquets", i el sistema de paquets GoboLinux utilitza el mateix sistema de fitxers com a base de dades de paquets. Es diu que això produeix un arbre de directoris més senzill i menys desordenat. GoboLinux utilitza enllaços simbòlics i un mòdul del nucli opcional anomenat GoboHide per aconseguir tot això mantenint la total compatibilitat amb la jerarquia tradicional del sistema de fitxers de Linux.
Els creadors de GoboLinux han afirmat que el seu disseny té altres "modernismes", com ara l'eliminació d'algunes distincions entre directoris tradicionals similars (com les ubicacions dels executables /bin, /usr/bin i /usr/local/bin). Els dissenyadors de GoboLinux han afirmat que això provoca que els scripts d'intèrpret d'ordres es trenquin amb menys freqüència que amb altres distribucions de Linux. Aquest canvi, introduït per GoboLinux el 2003, només ha estat adoptat per altres distribucions molt més tard: Fedora va fusionar /bin i /usr/bin el 2012; Debian va habilitar la fusió /usr per defecte el 2018.
GoboLinux també permet a l'usuari tenir diferents versions del mateix programa instal·lades simultàniament (i fins i tot executar-les simultàniament). A més, s'ha afirmat que l'índex de gestió de paquets mai no es podria dessincronitzar amb el sistema de fitxers, perquè les referències a fitxers inexistents simplement es converteixen en enllaços trencats i, per tant, es tornen inactius. Els canvis del sistema de fitxers de GoboLinux també permeten altres innovacions, com ara un sistema d'arrencada completament nou que no utilitza sistemes d'inici d'estil System V o BSD.

## Jerarquia de fitxers

El disseny de GoboLinux va ser influenciat per sistemes anteriors com NeXTSTEP, AtheOS i BeOS, tots els quals van adoptar estructures originals del sistema de fitxers tot mantenint un grau considerable de compatibilitat amb Unix. A l'arrel de l'arbre GoboLinux, hi ha sis directoris: Programes, Usuaris, Sistema, Fitxers i Muntatge.

## Programa "Compilar".

Compile és un programa que descarrega, desempaqueta, compila fitxers tarballs de codi font i instal·la el codi executable resultant, tot amb una sola ordre (com ara Compile foo) utilitzant scripts de compilació senzills coneguts com a "receptes".
El sistema Compile és una mica similar al sistema Portage de Gentoo, que es basa en la col·lecció FreeBSD Ports. Tanmateix, Portage està fet per a una jerarquia de sistema de fitxers tradicional, compatible amb l'⁣estàndard de jerarquia de sistema de fitxers, mentre que Compile amplia la capacitat de la jerarquia de sistema de fitxers distintiva de GoboLinux a l'àrea de gestió de paquets. Així, a GoboLinux, el mateix sistema de fitxers serveix de manera natural com una mena de base de dades del gestor de paquets.
El programa Compile es va introduir a la versió 011 de GoboLinux. Abans d'això, hi va haver discussions sobre portar el sistema Portage de Gentoo a GoboLinux i desenvolupar el port com a projecte SourceForge.net amb el nom de GoboPortage.
Les altres funcions de Compile inclouen:
   * L'ús del lloc de descàrrega propi de cada programa: El repositori de la distribució (o un dels seus miralls) només s'utilitza per descarregar receptes. Les receptes es poden descarregar sobre la marxa o per lots.
   * Guions de compilació minimalistes i orientats a declaracions: El programari típic de "configure; make; make install" es pot escriure en dues línies, facilitant molt el manteniment.
   * Suport de dependències a l'estil GoboLinux: El programari compilat "a mà" per l'usuari es té en compte per un mecanisme de detecció.
   * Camí-agnosticisme: També funciona en una instal·lació de GoboLinux sense arrels (és a dir, dins d'un directori d'inici de qualsevol altra distribució).

## Alliberaments

Les versions s'han numerat mitjançant el sistema de base octal. Segons els autors, aquest esquema es va escollir perquè manté el típic zero inicial que està present en molts números de versió del programari lliure (ja que un zero inicial sovint indica que un nombre és octal), i és un joc de "carrera de números de versió". Això va passar entre les distribucions de Linux al voltant de 1999. Quan es llegeix com a nombres decimals, l'ús de nombres octals provoca un "bump de versió" determinista cada vuit llançaments. Fins a la versió 013, GoboLinux no feia "alliberaments puntuals", per tal d'evitar la implicació que algunes versions eren més estables que altres. Aquesta tradició es va trencar amb la versió 014.01, una actualització de la 014 centrada en la correcció d'errors.

## Ports

Actualment, GoboLinux està desenvolupat per a x86-64. Es va fer oficialment per a l'⁣i686 només fins a la versió 015, però en un moment donat es va fer un port incomplet per a l'⁣i386. També s'han fet ports a arquitectures incrustades, com ARM i SuperH; aquestes tasques es van aconseguir amb Bootstrap, una eina desenvolupada especialment per automatitzar la creació de ports.

## Recepció

LWN.net va revisar GoboLinux 010 el 2004:
| « | (anglès) It turns out that the GoboLinux project has been doing exactly that - reorganizing the directories and files into a new structure. It all started with one of the developers working on a system where he did not have superuser privileges, but still needed to compile programs. To avoid difficulties when upgrading, he placed individual programs into their own directories and named them according to the relevant program names, e.g. ~/Programs/AfterStep. Other parts of the programs went into similarly identified directories, such as ~/Libraries, ~/Headers, etc. Custom scripts for automated compilation of these programs and correct placing of individual components were also developed. | (català) Resulta que el projecte GoboLinux ha estat fent exactament això: reorganitzant els directoris i fitxers en una nova estructura. Tot va començar amb un dels desenvolupadors treballant en un sistema on no tenia privilegis de superusuari, però encara necessitava compilar programes. Per evitar dificultats en l'actualització, va col·locar programes individuals als seus propis directoris i els va anomenar segons els noms de programes rellevants, p. ~/Programes/AfterStep. Altres parts dels programes van anar a directoris identificats de manera similar, com ara ~/Libraries, ~/Headers, etc. També es van desenvolupar scripts personalitzats per a la compilació automatitzada d'aquests programes i la col·locació correcta dels components individuals. | » |
Linux.com va escriure una ressenya sobre GoboLinux 013:
| « | (anglès) Needless to say, this type of hierarchy aids in package management. Users can install and use multiple versions of the same program or system libraries. In fact, when GoboLinux switched over to the GNU Compiler Collection (GCC) version 3, they still kept older programs running since the filesystem allows for multiple libraries to exist together in peace. Also, uninstallation is just a matter of removing the program directory. | (català) No cal dir que aquest tipus de jerarquia ajuda a la gestió de paquets. Els usuaris poden instal·lar i utilitzar diverses versions del mateix programa o biblioteques del sistema. De fet, quan GoboLinux va passar a la versió 3 de la Col·lecció de compiladors GNU (GCC), encara van mantenir en funcionament els programes més antics, ja que el sistema de fitxers permet que hi hagi diverses biblioteques juntes en pau. A més, la desinstal·lació és només una qüestió d'eliminar el directori del programa. | » |
Jesse Smith de DistroWatch Weekly va revisar GoboLinux 015:
| « | (anglès) Booting from the GoboLinux media brings up a screen with text-based menus. Using these menus we are asked to select our preferred language from a list and choose our keyboard's layout. We are then presented with a text console where we are logged in as the user "gobo". Instructions on the screen tell us how to bring up a graphical user interface and how to launch the system installer. The graphical environment turns out to be the Enlightenment window manager. On the desktop are icons for running the GParted partition manager and the system installer. At the bottom of the screen we find an application menu, task switcher and system tray. | (català) L'arrencada des del suport GoboLinux mostra una pantalla amb menús basats en text. Amb aquests menús se'ns demana que seleccionem el nostre idioma preferit d'una llista i triem la disposició del nostre teclat. A continuació, se'ns presenta una consola de text on estem registrat com a usuari "gobo". Les instruccions a la pantalla ens expliquen com obrir una interfície gràfica d'usuari i com iniciar l'instal·lador del sistema. L'entorn gràfic resulta ser el gestor de finestres d'Enlightenment. A l'escriptori hi ha icones per executar el gestor de particions GParted i l'instal·lador del sistema. A la part inferior de la pantalla trobem un menú d'aplicacions, un commutador de tasques i la safata del sistema. | » |
Smith també va revisar GoboLinux 016.

## Nom i logotip

Gobo és un personatge de ficció. Poc se sap d'ell, perquè els que el van veure mai van sobreviure per explicar-ne informació. També té un criat lleial fictici anomenat Fibo. La mascota de GoboLinux que és un pingüí que porta la roba de Fibo.

## Referències

* ↑ Hisham Muhammad. «The Unix tree rethought: an introduction to GoboLinux», 09-05-2003. Arxivat de l'original el 2008-05-26. [Consulta: 17 març 2008].
* ↑ Marc Weinem. «Simplified package management on GoboLinux - an interview with Lucas Villa Real», 13-03-2008. [Consulta: 31 març 2008].
* ↑ Fedora Project. «/Usr Move», 29-03-2012. [Consulta: 30 desembre 2016].
* ↑ Debian. «debootstrap: enable --merged-usr by default», 13-06-2018. [Consulta: 22 abril 2023].
* ↑ Mayank Sharma. «GoboLinux's recipe for delicious package management». Linux.com, 14-02-2007. Arxivat de l'original el 2008-09-17. [Consulta: 19 juliol 2009].
* ↑ «GoboLinux Compile -- A Scalable Portage ?». Slashdot, 05-06-2004. [Consulta: 19 juliol 2009].
* ↑ «The Ideas Behind Compile». GoboLinux. Arxivat de l'original el 2010-06-13. [Consulta: 19 juliol 2009].
* ↑ Gentoo Forums : View topic - GoboGentoo
* ↑ SourceForge.net: GoboPortage
* ↑ Mayank Sharma. «GoboLinux: An Interview with Lucas Villa Real», 21-08-2007. Arxivat de l'original el 2007-10-11. [Consulta: 31 març 2008].
* ↑ GoboLinux Embedded
* ↑ «GoboLinux - Fun with File System Hierarchy [LWN.net]». lwn.net. [Consulta: 24 setembre 2022].
* ↑ «GoboLinux's recipe for delicious package management» (en anglès americà). Linux.com, 14-02-2007. [Consulta: 24 setembre 2022].
* ↑ «DistroWatch.com: Put the fun back into computing. Use Linux, BSD.». distrowatch.com. [Consulta: 24 setembre 2022].
* ↑ «DistroWatch.com: Put the fun back into computing. Use Linux, BSD.». distrowatch.com. [Consulta: 24 setembre 2022].
* ↑ «The GoboLinux FAQ». the official GoboLinux website. [Consulta: 20 juny 2021].

## Enllaços externs

* GoboLinux - Lloc web oficial
* GoboLinux a Github