Jump to content

GoboLinux

From Wikipedia, the free encyclopedia
GoboLinux
GoboLinux 016 desktop
GoboLinuxdesktop
OS familyLinux(Unix-like)
Working stateActive[1]
Source modelOpen source
Initial release2003;21 years ago(2003)
Latest release017 / May 24, 2020;4 years ago(2020-05-24)
Available inGerman,English,Hungarian,Portuguese,Spanish
Platformsx86-64
KerneltypeMonolithic(Linux)
Default
user interface
Awesome
LicenseGNU General Public License
Official websitegobolinux.org

GoboLinuxis aLinux distributionwhose most prominent feature is a reorganization of the traditionalLinuxfile system.Rather than following theFilesystem Hierarchy Standardlike mostUnix-likesystems, each program in a GoboLinux system has its ownsubdirectorytree, 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

[edit]

The GoboLinux hierarchy represents a radical departure from the filesystem traditionally employed by mostUNIX-like operating systemswhere specific types of files are stored together in common standard subdirectories (such as/binfor executables and/etcfor configuration files) and wherepackage managersare 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 usessymlinksand an optionalkernel modulecalledGoboHideto 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 inshell scriptsbreaking less often than with other Linux distributions. This change, introduced by GoboLinux in 2003, has only been adopted by other distributions much later:Fedoramerged /bin and /usr/bin in 2012;[4]Debianenabled 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 useSystem VorBSDstyle init systems or one of their replacements.

File hierarchy

[edit]
Screenshot of the File hierarchy

The design of GoboLinux was influenced by earlier systems such asNeXTSTEP,AtheOS,andBeOS,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

[edit]

Compileis a program that downloads, unpacks,compilessource codetarballs,and installs the resulting executable code, all with a single command (such asCompile foo) using simple compilation scripts known as "recipes".[6]

The Compile system is somewhat similar to Gentoo'sPortagesystem,[7]which is based on theFreeBSD Portscollection. However, Portage is made for a traditional filesystem hierarchy, compatible with theFilesystem 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 nameGoboPortage.[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 ahome directoryof any other distribution).[11]

Releases

[edit]

Releases have been numbered using theoctalbase system. According to the authors, this scheme was chosen because it keeps the typical leading zero that is present in manyfree softwareversion 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 onbug fixes.

Ports

[edit]

GoboLinux is currently developed forx86-64.It was officially made for thei686only until release 015, but at one point an incomplete port to thei386was made. Ports have also been made to embedded architectures, such asARMandSuperH;these tasks were achieved with Bootstrap,[12]a tool developed especially to automate making ports.

Reception

[edit]

LWN.netreviewed GoboLinux 010 in 2004:[13]

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.

Linux.com wrote review about GoboLinux 013:[14]

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.

Jesse Smith from DistroWatch Weekly reviewed GoboLinux 015:[15]

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.

Smith also reviewed GoboLinux 016.[16]

[edit]

Gobois 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 namedFibo.GoboLinux's mascotQueis apenguinwearing Fibo'sclothes.[17]

References

[edit]
  1. ^Distrowatch (2020-03-27)."Project status listed as Active as of Friday 27 March 2020 02:30 UTC".Retrieved2020-03-27.
  2. ^Hisham Muhammad (May 9, 2003)."The Unix tree rethought: an introduction to GoboLinux".Archived fromthe originalon 2008-05-26.Retrieved2008-03-17.
  3. ^Marc Weinem (2008-03-13)."Simplified package management on GoboLinux - an interview with Lucas Villa Real".Retrieved2008-03-31.
  4. ^Fedora Project (2012-03-29)."/Usr Move".Retrieved2016-12-30.
  5. ^Debian (2018-06-13)."debootstrap: enable --merged-usr by default".Retrieved2023-04-22.
  6. ^Mayank Sharma (2007-02-14)."GoboLinux's recipe for delicious package management".Linux.com.Archived fromthe originalon 2008-09-17.Retrieved2009-07-19.
  7. ^"GoboLinux Compile -- A Scalable Portage ?".Slashdot.2004-06-05.Retrieved2009-07-19.
  8. ^"The Ideas BehindCompile".GoboLinux. Archived fromthe originalon 2010-06-13.Retrieved2009-07-19.
  9. ^Gentoo Forums: View topic - GoboGentoo
  10. ^SourceForge.net: GoboPortage
  11. ^Mayank Sharma (2007-08-21)."GoboLinux: An Interview with Lucas Villa Real".Retrieved2008-03-31.
  12. ^GoboLinux Embedded
  13. ^"GoboLinux - Fun with File System Hierarchy [LWN.net]".lwn.net.Retrieved2022-09-24.
  14. ^"GoboLinux's recipe for delicious package management".Linux.com.2007-02-14.Retrieved2022-09-24.
  15. ^"DistroWatch.com: Put the fun back into computing. Use Linux, BSD".distrowatch.com.Retrieved2022-09-24.
  16. ^"DistroWatch.com: Put the fun back into computing. Use Linux, BSD".distrowatch.com.Retrieved2022-09-24.
  17. ^"The GoboLinux FAQ".the official GoboLinux website.Retrieved20 June2021.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.
[edit]