It is a well-known fact that of the 300 or so Linux distributions in
existence today, the vast majority are nothing but modified versions of one
of the major ones. Some of them might offer a few interesting ideas or
several user-friendly tweaks, but the underlying system usually differs
very little from its immediate parent. That's not to say that there is no
innovation among the smaller distributions. Unfortunately, most of them are
limited to relatively simple enhancements, rather than radical ideas. One
exception is
GoboLinux. This
comparatively little-known project is attempting to redefine the entire
UNIX file system and come up with a unique and more logical structure of
directories and files.
More logical? Well, even some seasoned UNIX system administrators will
probably agree that the UNIX file system, developed in late sixties, is far
from ideal. While it is not particularly difficult to learn which files
belong to /usr, which should go into /var and what to store in /etc, isn't
there a more intuitive way of placing files into directories? Especially in
times when many people are trying to push Linux into the mainstream as a
viable alternative to other, more user-friendly operating systems?
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.
After a hard disk crash, the developer decided to rebuild his entire system
with this new file system hierarchy. Under GoboLinux, there are 6 directories
below the root file system; these
are /Depot, /Mount, /System, /Files, /Programs and /Users. All executable
files are stored under /Programs, which has a structure
of /Programs/XFree86/4.3/. This makes it easy to maintain multiple versions
of an application without having to resort to application renaming (e.g. gcc
and gcc3). The /Programs directory also stores system-wide settings, so the
XFree86 configuration file can be found in /Programs/XFree86/Settings/X11/.
The /Users directory is roughly equivalent to /home on "normal" Linux system,
while /Depot is a general place to store files by all users. The /Files
directory contains plugins, fonts, documentation and other non-executable
files.
The purpose of the /System directory is more complex. It contains symbolic
links to all executable files, libraries, headers, etc on the system and
these are also mapped to the traditional location, such as /bin, /usr/bin,
etc. Yes, the system does include these directories - for legacy reasons and
for those troublesome applications where directory paths are hard-coded into
the source code. However, these legacy directories are not visible to users,
thanks to a GoboHide kernel patch, which is able to hide certain directories,
both from the command line and from file managers.
How does one go about installing applications on GoboLinux? These tasks have
been automated by a collection of scripts. There are scripts for compiling
programs, scripts for creating GoboLinux packages from source code, and
scripts for installation. They have command line options to handle special
situations, but in most cases they are very simple to use. The scripts also
include simple dependency checking. As for the system boot, rather than using
one of the common boot models (System V or BSD), the GoboLinux developers
have written their own set of boot scripts - simple sequences of executable
commands, each with a message string.
GoboLinux, the core of which is developed by Hisham Muhammad and Andre Detsch
(as well as a number of contributors), is an interesting distribution to play
with. The bootable ISO image serves as a live CD with some basic hardware
auto-detection and KDE as the default desktop environment. Once booted, a
graphical (as well as a text-based) GoboLinux installer is provided for those
who would like to give it a partition on the hard disk. The latest version is
010 (the versioning scheme follows octal numbering), released earlier this
month, and this is available for free download from GoboLinux mirror sites.
The developers pride themselves on having created a highly unusual, yet
usable Linux system and they are keen to offer support via their fairly busy
mailing lists.
It is highly unlikely that GoboLinux will succeed in relegating the
traditional UNIX file system hierarchy into the annals of history and
replacing it with a more intuitive one. But as a hobby distribution, it is
certainly a lot of fun.
(
Log in to post comments)