Operating Systems: Vfs/Nfs
Operating Systems: Vfs/Nfs
VFS/NFS
A. Frank - P. Weisberg
File System Mounting
• A file system must be mounted before it can be
accessed.
• A unmounted file system is mounted at a
mount point.
2 A. Frank - P. Weisberg
Existing. (b) Unmounted Partition )a(
3 A. Frank - P. Weisberg
Mount Point
4 A. Frank - P. Weisberg
Virtual File Systems
• Virtual File Systems (VFS) provide an object-
oriented way of implementing file systems.
• VFS allows the same system call interface (the
API) to be used for different types of file
systems.
• The API is to the VFS interface, rather than any
specific type of file system.
5 A. Frank - P. Weisberg
Schematic View of Virtual File System
6 A. Frank - P. Weisberg
The Sun Network File System (NFS)
• An implementation and a specification of a
software system for accessing remote files
across LANs (or WANs).
• The implementation is part of the Solaris and
SunOS operating systems running on Sun
workstations using an unreliable datagram
protocol (UDP/IP protocol) and Ethernet.
7 A. Frank - P. Weisberg
NFS Logic (1)
• Interconnected workstations viewed as a set of
independent machines with independent file systems,
which allows sharing among these file systems in a
transparent manner:
– A remote directory is mounted over a local file system
directory. The mounted directory looks like an integral
subtree of the local file system, replacing the subtree
descending from the local directory.
– Specification of the remote directory for the mount
operation is nontransparent; the host name of the remote
directory has to be provided. Files in the remote directory
can then be accessed in a transparent manner.
– Subject to access-rights accreditation, potentially any file
system (or directory within a file system), can be mounted
remotely on top of any local directory.
8 A. Frank - P. Weisberg
NFS Logic (2)
• NFS is designed to operate in a heterogeneous
environment of different machines, operating systems,
and network architectures; the NFS specifications are
independent of these media.
• This independence is achieved through the use of
RPC primitives built on top of an External Data
Representation (XDR) protocol used between two
implementation-independent interfaces.
• The NFS specification distinguishes between the
services provided by a mount mechanism and the
actual remote-file-access services.
9 A. Frank - P. Weisberg
Three Independent File Systems
10 A. Frank - P. Weisberg
Mounting in NFS
14 A. Frank - P. Weisberg
Schematic View of NFS Architecture
15 A. Frank - P. Weisberg
NFS Path-Name Translation
• Performed by breaking the path into component
names and performing a separate NFS lookup
call for every pair of component name and
directory vnode.
• To make lookup faster, a directory name
lookup cache on the client’s side holds the
vnodes for remote directory names.
16 A. Frank - P. Weisberg
NFS Remote Operations
• Nearly 1-1 correspondence between regular UNIX system calls
and the NFS protocol RPCs (except opening and closing files).
• NFS adheres to the remote-service paradigm, but employs
buffering and caching techniques for the sake of performance.
• File-blocks cache: when a file is opened, the kernel checks
with the remote server whether to fetch or revalidate the
cached attributes. Cached file blocks are used only if the
corresponding cached attributes are up to date.
• File-attribute cache: the attribute cache is updated whenever
new attributes arrive from the server.
• Clients do not free delayed-write blocks until the server
confirms that the data have been written to disk.
17 A. Frank - P. Weisberg