The most important experimental distro you've never heard of gets new project lead
Plus a fresh version ... nine years after its last
After five years, the extremely experimental GoboLinux project is springing back to life with a new maintainer and a new release.
Nine years after its last major release, GoboLinux returns, with a new release, version 017, and a new project maintainer. Until now, Gobo was under the stewardship of founder Hisham Muhammad, a Brazilian developer whose most famous project is probably the popular htop process viewer.
Hisham has now stepped down and passed the torch to a new maintainer, Philip "nuc1eon" Pok, who was already maintaining the project wiki.
Along with this news, there's also a new release: GoboLinux 017.01.

GoboLinux 017 comes with the AwesomeWM tiling window manager, but others are on offer – click to enlarge
Although Gobo users haven't seen a release in a while, that does not make it one of the many one-person efforts which only puts out a release or two and then disappears. Gobo has been around since 2003, and there is a small team of people working on it. Back in 2020 there were both alpha and beta releases of version 017 from project co-founder Luca Villa Real. Now, that version is finally here, fixing some bugs, changing some implementation details of its unique packaging system, and updating many of the components – but it's not massively different from before.
GoboLinux is an experimental and extremely radical distro: it is not another contender for a Windows replacement, or a super-lightweight distro, or anything like that. If you're looking for something easy and ready-to-use, look elsewhere – for instance, Linux Lite 7.4 just came out.
Gobo is an OS for people interested in totally reconsidering how Unix-like OSes are put together, how software is packaged, installed, updated, and removed. In its early days, Gobo drew some inspiration from the then-new Mac OS X.
MacOS and NeXTstep
A bootable macOS system drive seems to have a very simple directory layout: there are only a handful of visible directories in the root directory. For example, on the "Monterey" machine we're writing on right now, the boot drive contains just four top-level directories: Applications
, Library
, System
and Users
. Inside Applications
, each program looks like a single file: Automator
, Calculator
, Calendar
, and so on.
This superficial simplicity, though, is thanks to some sleight of hand. In reality, the root directory has most of the standard Unix entries such as bin
, dev
, etc
, opt
, sbin
, usr
, var
and so on. It's just that Finder desktop hides them. Open a terminal, type ls -la /
, and there they are – although the contents may not be just as Unix veterans expect.
Those pretty icons in /Applications
conceal whole directory trees. They have a special file extension, and when the macOS Finder sees a directory called {something}.app
, it hides the extension and treats that tree as a monolithic application. Inside, there's a complex directory hierarchy, which bears no resemblance to a conventional Unix-style layout, and has distinct advantages: for instance, it can transparently handle binaries for multiple CPU architectures.
MacOS inherited its directory layout and the .app
system from NeXTstep, developed by Steve Jobs's NeXT Computer, which released NeXTstep 1.0 in 1988. It's also shared by the GNUstep project, which is older than Linux itself. NeXT and Sun standardized the system in the OPENSTEP Specification [PDF] in 1994. Today, it's used in macOS and and GNUstep-based desktops such as NEXTSPACE and GSDE.
The Gobo team took the idea of macOS's simple, stripped-out filesystem layout, and extended it to apply it more ruthlessly to the whole OS. Gobo only has a relatively small number of directories, with human-readable, conventionally-capitalized names in English. Inside these are other fairly self-descriptive names, and inside them, directories with version numbers, so you can have multiple different versions of tools installed simultaneously, side-by-side.
Installing a program is simple: just copy one directory. Uninstall by deleting that directory. If you don't remove the directory with the previous version number, the previous version is left intact – so rollback is built in, without fancy filesystems, copy-on-write snapshots or anything.
This totally replaces the traditional Unix-style system, which separates the component files of the OS and its constituent programs, and spreads them out across a complex directory hierarchy with cryptic, abbreviated, all-lower-case names: libraries in /lib
and /usr/lib
, binaries in /bin
and /sbin
and /usr/bin
and /usr/sbin
and /usr/local/bin
and so on, config files in /etc
, system state in /var
, and so on. The reasons for this are complex and historical: the system evolved after repeated ad hoc compromises due to the constrained hardware UNIX was originally built on.
As that last link explains:
Of course once the split existed, some people made other rules to justify it.
[…]
Standards bureaucracies like the Linux Foundation… happily document and add to this sort of complexity without ever trying to understand why it was there in the first place.
This is the important point. There are people who will happily explain for hours why all this stuff exists. There is a formal standard for the layout, with various explanations, such as the quite short Ubuntu one or the Linux Documentation Project's extremely in-depth one. Even so, it's not really true: it was all invented after the fact, to justify what had just evolved over time. It's done like this because everyone has always done it like this. Worse still, none of it really matters today, when a £5 ($6) USB key can hold a dozen entire distros and the cheapest computers you can buy boot from SSDs holding hundreds of gigs. Now, it's just tradition.
Today, we need elaborate programs to take packaged software, unpack it and distribute all its many components in many different directories across this complex hierarchy. The task is even more difficult because the tools must also track where every component went, so that all of the files can be upgraded with new versions – or so that they can be uninstalled again. Additionally, these tools must keep track of all the complex interdependencies between the many programs and libraries that make up the OS itself, plus any additional applications.
One of the principle differences between all the many Linux distributions is their various implementations of such tools.
Ostensibly modern systems like Flatpak merely take the old Unix layout, encapsulate it inside their own wrappers, and bolt on some extremely complicated tooling to synchronize changes down from a cloud server to your local machine. Snap does the same, but by loop-mounting compressed archive files, which at least makes updating simpler – copy a new file.
The Gobo developers threw away all that legacy baggage, and replaced it with a simplified, human-readable layout with capitalized English names – not because they were native English speakers, as they aren't, but because it's the world language of the 21st century.
By way of full disclosure: the traditional Unix folder hierarchy is still present. It is needed, because many of its paths are embedded in the source code of many Linux programs. However, Gobo's version is empty apart from lots of symbolic links to where things are really stored, which means existing source code can be recompiled without modification. It's also hidden, by an optional Linux kernel module called Gobohide, which has been part of the kernel for about 20 years.

The live image boots to a very clean screen, and there's startlingly little in the root directory - click to enlarge
The system is quite mature now, although even 22 years ago, Hisham had to defend his decisions – for instance, in "I am not clueless," subtitled Myths and misconceptions about the design of GoboLinux.
There are other systems which have tried to do comparable things.
Back in the days of proprietary UNIX, there were several. The US National Institute of Standards and Technology had a system called the NIST Depot, described as a Framework for Sharing Software Installation Across Organizational & UNIX Platform Boundaries [PDF]. Variants included CMU Depot, which used the Andrew distributed filesystem. Not much is left today, but there is a short overview of what it did and how it worked. Another derivative was Depot-Lite, described as A Mechanism for Managing Software.
Another was Xhier from the University of Waterloo, which still offers HOWTOs on it.
Today, there is Nix. This can be used on other OSes, and there is a distro built around it which we looked at in 2022. Nix also throws out almost the entire Unix directory hierarchy, and replaces it with a software-generated one using hashes to ensure uniqueness. There's an evaluation and comparison of GoboLinux from 2011 which discusses the different goals of the two projects.
GNU Guix is similar but defines packages using the GNU Guile dialect of Scheme, while Nix has its own unique specification language.
In this vulture's humble opinion, these tools go too far and sacrifice too much in pursuit of declarative, reproducible builds, which are theoretical advantages which we suspect simply don't matter to most Linux users – as we explained why in some depth when Nix was forked about a year ago. Nix produces a filesystem that's barely human-readable or navigable, and if the tools to maintain it stopped working, it would be well-nigh impossible to repair or maintain by hand. It also discards the hierarchical and explorable nature of other filesystem designs.
In contrast, Gobo aims to produce a hierarchy that is more readable and easier to navigate, and it exploits that design to deliver better encapsulation and isolation than traditional Unix or Linux systems, simpler installation and removal, and upgrades and rollback without the need for sophisticated filesystems such as Btrfs or ZFS.
Also, just like Nix, you can use GoboLinux within your home directory on top of another distribution – the teams calls this Rootless GoboLinux.
The changes Gobo makes enrage Unix traditionalists, but it delivers on its claims. In our testing, version 017.01 runs happily under both VirtualBox and QEMU, but we couldn't get it to successfully install a bootloader – but then, bootloader problems are mentioned under Known outstanding issues in the release notes. We're willing to forgive this: it's under new management, and they've got a release out that's been pending since 2020.
The teething troubles don't in any way lessen the lessons that Gobo has to teach. We've seen people say that Nix and Guix render it obsolete, but that is not remotely the case. We hope that the developers of Flatpak, Snap, openSUSE's Snapper, and other experimental packaging tools pay attention to the new version, and spend some time learning how it works. ®