Any good Networked or Distributed File system will hide the locality
of a file from the application (user), to some extent. But in doing
this, it must still provide the user with a way of navigating the
filesystem. Typically, this is done by extending the idea of physical
or logical disks or disk partitions that are present in many operating
system views of files. For example, DOS has a notion of <#2378#> drive<#2378#>,
and many distributed filesystems for DOS simple allocate <#2379#> network
drives<#2379#> as the names for file systems on a server.
On the other hand, Unix has a more general mechanism for building a
view of a set of filesystems into a tree structure, using points in the
filesystem called <#2380#> mount points<#2380#> where entire new filesystems can
be <#2381#> found<#2381#>. Many networked filesystems have used this hierarchical
naming system to place a servers filesystem(s) in the view of a client
machine. There is a choice here, as to whether all servers are seen
by all clients in the same place in the same tree, or else if each
client can carry out the mapping wherever it likes. The latter
approach is most common as it is more open.
Basically, initial access to a file is seen by the client operating system as
some call to a system function which names this mount point or network
drive, explicitly or implicitly (e.g. w.r.t current working directory).
The system simply intercepts these and further access calls to the
file, and redirects them to the client protocol code. This is an ideal
job for Remote Procedure Call.