USENIX Technical Program - Abstract - USENIX Annual
Conference, General Session - June 2000
Lexical File Names in Plan 9
or
Getting Dot-Dot Right
Rob Pike, Bell Laboratories
Abstract
Symbolic links make the Unix file system non-hierarchical, resulting in
multiple valid path names for a given file. This ambiguity is a source
of confusion, especially since some shells work overtime to present a
consistent view from programs such as pwd, while other programs and the
kernel itself do nothing about the problem.
Plan 9 has no symbolic links but it does have other mechanisms that
produce the same difficulty. Moreover, Plan 9 is founded on the ability
to control a program's environment by manipulating its name space.
Ambiguous names muddle the result of operations such as copying a name
space across the network.
To address these problems, the Plan 9 kernel has been modified to
maintain an accurate path name for every active file (open file, working
directory, mount table entry) in the system. The definition of
'accurate' is that the path name for a file is guaranteed to be the
rooted, absolute name the program used to acquire it. These names are
maintained by an efficient method that combines lexical processing - such
as evaluating .. by just removing the last path name element of a
directory - with local operations within the file system to maintain a
consistently, easily understood view of the name system. Ambiguous
situations are resolved by examining the lexically maintained names
themselves.
A new kernel call, fd2path, returns the file name associated with an
open file, permitting the use of reliable names to improve system
services ranging from pwd to debugging. Although this work was done in
Plan 9, Unix systems could also benefit from the addition of a method to
recover the accurate name of an open file or the current directory.
- View the full text of this paper in
HTML form and
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it
from Adobe's
site.
- To become a USENIX Member, please see our Membership Information.
- Current USENIX Members may change their password.
|