next up previous contents
Next: Why a user space Up: Related works Previous: The GNU package manager   Indice


GoboLinux [HMa] is a Linux distribution that breaks with the historical Unix directory hierarchy and so it does not comply with the FHS standard. The main idea of the alternative hierarchy (shown in figure 4.2) is to store all files belonging to an application in their own separate subtree; therefore there are directories such as $ \texttt{/Programs/GCC/2.95.3/lib}$. This choice makes this project sharing some goals with PackageFS.

GoboLinux aims to provide an easier user interface to the operating system. Its root directory holds some entries like $ \texttt{/Programs}$, $ \texttt{/Users}$, $ \texttt{/System}$. All applications files are installed in a subtree under $ \texttt{/Programs}$. Each program entry stores, in its turn, a subdirectory for each version of the specific software, and a link labeled $ \texttt{Current}$ pointing to the currently used version. Each application also has a $ \texttt{Settings}$ directory storing the program's configuration files (which would be normally stored into $ \texttt{/etc}$). Notice that this directory is unique for all versions of the program: this design choice eases the version control, since personal configurations are preserved in the event of an upgrade or downgrade.

This distribution groups all system files into few categories: $ \texttt{Executables}$, $ \texttt{Headers}$, $ \texttt{Libraries}$ and $ \texttt{Manuals}$. For each of them, there is a directory under $ \texttt{/System/Links}$ collecting symbolic links of the programs' files (i.e. $ \texttt{/System/Links/Executables/ping ->}$ $ \texttt{/Programs/Netkit-Base/0.17/bin/ping}$). The distinctive feature of these categories is that they are system-wide, thus, for instance, there is no more difference between $ \texttt{/bin}$, $ \texttt{/sbin}$, $ \texttt{/usr/bin}$ or $ \texttt{/usr/sbin}$, since they all consist in symbolic links to
$ \texttt{/System/Links/Executables}$. Users save their data in $ \texttt{/Users}$.

GoboLinux, like Gentoo, chooses to install packages from their source archives. Compile is the program that compiles and installs these archives. It follows compilation directives specified in simple files called Recipe. These latter have been projected to be minimalistic in order to lower maintenance complexity: the standard Recipe file is just two lines in length.

Figura 4.2: The GoboLinux directory hierarchy[HMb].

GoboLinux approach is quite interesting, because it provides a native solution for a modified view of the file system hierarchy, that is achieved without any slowdown. It consists in a new distribution and, even if diversity of possibilities may be considered positive, it represents also a waste of energy. After all, it represents a good try to achieve its goals.

GoboLinux has been presented here as a work related to PackageFS because it shares with it the purpose of giving a ``by-package'' system view. We will see in the following sections that PackageFS is a far more ambitious project.

next up previous contents
Next: Why a user space Up: Related works Previous: The GNU package manager   Indice