File (System) Naming

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.