The objectroot filesystem hierarchy
Introduction
In the objectroot information model, computing, at its highest level of abstraction, is a ménage à trois between hosts, organizations and users.
Hosts are entities that provide computing services. A host consists of an operating system kernel and its associated service configuration. There can be any number of hosts on a single physical computer.
Organizations are software publishers. An organization is represented on the local computer by a collection of its published software.
Users initiate computing tasks on hosts using software provided by organizations. A user object is often associated to a human individual, but it may also be entirely virtual in nature.
Each of the above three types of objects has its own container directory in the root of the filesystem name space. A central goal in objectroot is to make these object types as decoupled from each other as possible (but not more decoupled), and allow the interplay between them to happen with maximum flexibility.
root (/)
/hosts
— Operating system instances. [ More ... ]
/org
— Application and system software. [ More ... ]
/users
— Users' home directories. [ More ... ]
/boot
— Second-stage bootloader. Optional.
/mnt
— Temporarily mounted filesystems. Optional.
Symbolic links for backward compatibility:
/bin
→ /hosts/self/bin
/dev
→ /hosts/self/dev
/tmp
→ /hosts/self/tmp
To explore the branches,
click the
In objectroot,
the root directory is universal and,
unlike in the classic Unix hier(7)
layout,
no longer the property of just a single operating system instance.
The traditional Unix filesystem root has, in effect, been demoted two
directory levels down, to /hosts/self
, with the cleaned-up
“super root” only containing objects that are shareable between
all host instances.
Arrangements for backward compatibility
This reorganization brings the retirement of a number of Unix
“totems” from the root.
For example, the directories /etc
, /usr
and /var
are gone, while most of the remaining directories exist only as symbolic
links pointing to their new locations.
/bin, /dev and /tmp
The /bin
directory has been moved.
A symbolic link pointing to its new location allows legacy shell
scripts with a shebang line of the form
#!/bin/cmd
to continue to work.
The /dev
directory has been moved.
A symbolic link pointing to its new location allows references to
idiomatic names such as /dev/null
to continue to work.
|
The /tmp
directory has been moved.
A symbolic link pointing to its new location allows legacy references
to the directory to continue to work, for now.
From here on, this document uses the following typographical conventions:
/ | when appended to a pathname, indicates that the pathname refers to a directory |
italic | is used for placeholder values to substitute a pathname component |
light | is used for example values to illustrate a pathname component |
highlight | is used to highlight a particularly noteworthy pathname component |