GoboLinux explained

GoboLinux
Family:Linux (Unix-like)
Source Model:Open source
Latest Release Version:017
Language:German, English, Hungarian, Portuguese, Spanish
Kernel Type:Monolithic (Linux)
Ui:Awesome
License:GNU General Public License
Working State:Active[1]
Supported Platforms:x86-64

GoboLinux is a Linux distribution whose most prominent feature is a reorganization of the traditional Linux file system. Rather than following the Filesystem Hierarchy Standard like most Unix-like systems, each program in a GoboLinux system has its own subdirectory tree, where all of its files (including settings specific for that program) may be found. Thus, a program "Foo" has all of its specific files and libraries in /Programs/Foo, under the corresponding version of this program at hand. For example, the commonly known GCC compiler suite version 8.1.0, would reside under the directory /Programs/GCC/8.1.0.

According to the GoboLinux developers, this results in a cleaner system.[2]

Overview

The GoboLinux hierarchy represents a radical departure from the filesystem traditionally employed by most UNIX-like operating systems where specific types of files are stored together in common standard subdirectories (such as /bin for executables and /etc for configuration files) and where package managers are used to keep track of what file belongs to which program. In GoboLinux, files from each program are placed under their respective program's own dedicated subdirectory. The makers of GoboLinux have said that "the filesystem is the package manager", and the GoboLinux package system uses the filesystem itself as a package database.[3] This is said to produce a more straightforward, less cluttered directory tree. GoboLinux uses symlinks and an optional kernel module called GoboHide to achieve all this while maintaining full compatibility with the traditional Linux filesystem hierarchy.

The creators of GoboLinux have stated that their design has other "modernisms", such as the removal of some distinctions between similar traditional directories (such as the locations of executables /bin, /usr/bin, and /usr/local/bin). GoboLinux designers have claimed that this results in shell scripts breaking less often than with other Linux distributions. This change, introduced by GoboLinux in 2003, has only been adopted by other distributions much later: Fedora merged /bin and /usr/bin in 2012;[4] Debian enabled the /usr merge by default in 2018.[5]

GoboLinux also allows the user to have different versions of the same program installed concurrently (and even run them concurrently). Furthermore, it has been claimed that the package management index could never become unsynchronized with the filesystem, because references to nonexistent files simply become broken links, and thus become inactive. GoboLinux's filesystem changes also allow other innovations, such as an entirely different scripts-based boot system that does not use System V or BSD style init systems or one of their replacements.

File hierarchy

The design of GoboLinux was influenced by earlier systems such as NeXTSTEP, AtheOS, and BeOS, all of which adopted original filesystem structures while still maintaining a considerable degree of compatibility with Unix. At the root of the GoboLinux tree, there are five directories: Programs, Users, System, Data, and Mount.

"Compile" program

Compile is a program that downloads, unpacks, compiles source code tarballs, and installs the resulting executable code, all with a single command (such as Compile foo) using simple compilation scripts known as "recipes".[6]

The Compile system is somewhat similar to Gentoo's Portage system,[7] which is based on the FreeBSD Ports collection. However, Portage is made for a traditional filesystem hierarchy, compatible with the Filesystem Hierarchy Standard, while Compile extends the capability of GoboLinux's distinctive filesystem hierarchy into the area of package management. Thus, in GoboLinux, the filesystem itself serves naturally as a kind of package manager database.[8]

The Compile program was introduced in GoboLinux version 011. Before that, there were discussions about porting Gentoo's Portage system to GoboLinux and developing the port as a SourceForge.net project under the name GoboPortage.[9] [10]

Compile's other features included:

The use of each program's own download site
  • The distribution's repository (or one of its mirrors) is only used for downloading recipes. Recipes may be downloaded on-the-fly or in batch.
    Minimalistic and declarative-oriented compilation scripts
  • Typical "configure; make; make install" software may be scripted in two lines, greatly easing maintenance.
    Support of GoboLinux-style dependencies
  • Software compiled "by hand" by the user is taken into account by a detection mechanism.
    Path-agnosticism
  • It also works in a rootless GoboLinux installation (that is, inside a home directory of any other distribution).[11]

    Releases

    Releases have been numbered using the octal base system. According to the authors, this scheme was chosen because it keeps the typical leading zero that is present in many free software version numbers (since a leading zero often indicates that a number is octal), and it is a play on the "version numbers race" that happened among Linux distributions around 1999. When read as decimal numbers, using octal numbers causes a deterministic "version bump" each eight releases. Up to version 013, GoboLinux made no "point releases", in order to avoid the implication that some releases were more stable than others. This tradition was broken with version 014.01, an update of 014 focused on bug fixes.

    Ports

    GoboLinux is currently developed for x86-64. It was officially made for the i686 only until release 015, but at one point an incomplete port to the i386 was made. Ports have also been made to embedded architectures, such as ARM and SuperH; these tasks were achieved with Bootstrap,[12] a tool developed especially to automate making ports.

    Reception

    LWN.net reviewed GoboLinux 010 in 2004:[13] Linux.com wrote review about GoboLinux 013:[14] Jesse Smith from DistroWatch Weekly reviewed GoboLinux 015:[15] Smith also reviewed GoboLinux 016.[16]

    Name and logo

    Gobo is a fictional character. Not much is known about him, because those who saw him never survived to tell information about him. He also has a fictional loyal servant named Fibo. GoboLinux's mascot Que is a penguin wearing Fibo's clothes.[17]

    Notes and References

    1. Web site: Project status listed as Active as of Friday 27 March 2020 02:30 UTC . Distrowatch . 2020-03-27 . 2020-03-27 .
    2. Web site: Hisham Muhammad . The Unix tree rethought: an introduction to GoboLinux . 2008-03-17 . https://web.archive.org/web/20080526214549/http://www.kuro5hin.org/story/2003/5/9/05015/62649 . 2008-05-26 . May 9, 2003.
    3. Web site: Simplified package management on GoboLinux - an interview with Lucas Villa Real . Marc Weinem . 2008-03-13 . 2008-03-31 .
    4. Web site: /Usr Move . Fedora Project . 2012-03-29 . 2016-12-30 .
    5. Web site: debootstrap: enable --merged-usr by default . Debian . 2018-06-13 . 2023-04-22 .
    6. Web site: GoboLinux's recipe for delicious package management . Mayank Sharma . 2007-02-14 . . 2009-07-19 . https://web.archive.org/web/20080917021209/http://www.linux.com/articles/60133 . 2008-09-17 . dead .
    7. Web site: GoboLinux Compile -- A Scalable Portage ? . 2004-06-05 . . 2009-07-19 .
    8. Web site: The Ideas Behind Compile . GoboLinux . 2009-07-19 . https://web.archive.org/web/20100613074440/http://gobolinux.org/index.php?page=doc%2Farticles%2Fcompile . 2010-06-13 . dead .
    9. http://forums.gentoo.org/viewtopic-t-241718-highlight-gobolinux.html Gentoo Forums : View topic - GoboGentoo
    10. http://sourceforge.net/projects/goboportage/ SourceForge.net: GoboPortage
    11. Web site: GoboLinux: An Interview with Lucas Villa Real . Mayank Sharma . 2007-08-21 . 2008-03-31 .
    12. https://archive.today/20120629165707/http://embedded.gobolinux.org/ GoboLinux Embedded
    13. Web site: GoboLinux - Fun with File System Hierarchy [LWN.net] ]. 2022-09-24 . lwn.net.
    14. Web site: 2007-02-14 . GoboLinux's recipe for delicious package management . 2022-09-24 . Linux.com . en-US.
    15. Web site: DistroWatch.com: Put the fun back into computing. Use Linux, BSD. . 2022-09-24 . distrowatch.com.
    16. Web site: DistroWatch.com: Put the fun back into computing. Use Linux, BSD. . 2022-09-24 . distrowatch.com.
    17. Web site: The GoboLinux FAQ . the official GoboLinux website . 20 June 2021 . Apart from Fibo, his loyal servant, no one who saw him survived to tell the story. Beyond that, we never risked digging any deeper into the subject." No, the mascot is called Que. He's a penguin wearing Fibo's clothes..