The UNIX operating system was first used on environments where users accessed a central application server through terminal stations with low (or no) storage capacity. A number of characteristics of this system, most notably the data organization structured as a directory tree, reflect this history. The storage model based on trees proves to be adequate to this day; however, the logic behind the UNIX directory hierarchy is based on assumptions that no longer correspond to the reality of most of the existing Linux installations. The Linux operating system is getting widely used on personal stations which execute and store the user's applications. In this context, there is no ``application server'', and still, conventions such as the existence of different repositories for libraries persist (/lib, /usr/lib and /usr/local/lib).
Because of the fast pace of development in the Free Software community ( ``release early, release often'' ), the process of installing and removing programs became common and frequent. This is very different from the scenario on which the criteria for the UNIX directory hierarchy (still used by the Linux distributions) were based upon. As these criteria do not take into account the needs of today's reality, it becomes interesting to reevaluate them and seek an alternative.
This paper presents a directory tree that was conceived from the needs and usage patterns of modern Linux systems and, still, manages to retain compatibility with the UNIX legacy. Initially, aspects of the classic hierarchy are discussed (Section ). Next, an overview of the approaches employed in directory trees of other systems is presented (Section ). Section describes the devised hierarchy, while Section reports experiences related to the use of this model. Finally, Section concludes the paper.