GoboLinux - Fun with File System Hierarchy
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.
| Index entries for this article | |
|---|---|
| GuestArticles | Bodnar, Ladislav |
