next up previous
Next: 4 The GoboLinux hierarchy Up: AN ALTERNATIVE FOR THE Previous: 2 Characteristics of the


3 Alternative approaches

Practically all operating systems developed after the creation of UNIX use the model of directory trees. The different organizations applied to the directory hierarchy of those systems reflect the changes both in the way how computers are used and in their storage capacity. Below, we describe the directory trees existing in Mac OS X and AtheOS, desktop operating systems that possess a certain degree of UNIX heritage.

The adoption of a kernel and tools based, respectively, on Mach 3.0 and FreeBSD brought to Apple Computer the challenge to combine the UNIX hierarchy with a look and feel familiar to Mac OS users. Mac OS X ([1]) uses an uncommon strategy to achieve this feat. In its graphical interface, a Macintosh directory tree is presented, containing directories such as /System/Library and /Network/Remote_Station. Actually, these directories are a subset of the real directory tree. Also, the interface displays some directories in locations other than their physical storage points. For instance, /Mac OS X is a link to the root directory, and some directories, such as /Applications, appear in the interface as /Mac OS X/Applications. Accessing the file system through a text-based shell, ``hidden'' UNIX directories such as /usr and /etc become accessible. Note that this approach is only possible in a proprietary environment, where the entire user interface of the system is developed by a single company. In a system like Linux this would be impossible, given the heterogeneity of graphical user interfaces available.

The directory hierarchy of the AtheOS operating system ([5]) is partially based on the UNIX tree. In AtheOS, for example, the /usr directory is used for the intents that, in UNIX, /opt is used. This is made feasible through the directory convention. The AtheOS libraries recognize this as the ``directory where the currently running executable file resides'', analogously as , the UNIX indicator to the user's home directory. Unfortunately, Linux being a UNIX clone, it cannot employ solutions as this one, since this causes considerable portability problems (a text-based Linux application can be easily ported to AtheOS, but the opposite is not true).

There are programs that try to present alternatives to provide, to some degree, a reorganization of the directory hierarchy. Two of the most used programs of this kind are GNU Stow ([4]) and Encap ([2]). Both follow the basic idea presented by the Depot software ([7]), developed at Carnegie Mellon. The principle is to maintain two directory trees: a ``real'' one, where the files are sorted by application; and another one, sorted in the traditional way, containing links to the files located at the first tree3. GNU Stow intends to be a simplified alternative to Depot, since, contrary to Depot, it does not maintain a database. When using Stow, the application should be compiled with paths relative to /usr/local and installed with paths relative to /usr/local/stow/application. Encap uses similar systematics, with a rudimentary support for version control (the package manager software, epkg, tries to detect versions through the name of the application created under /usr/local/encap, for example, sed-2.0 and sed-3.0.2).


next up previous
Next: 4 The GoboLinux hierarchy Up: AN ALTERNATIVE FOR THE Previous: 2 Characteristics of the
Hisham H. Muhammad 2002-10-28