3.3 File systems

A file system is a standard of using storage resources, such as those on a hard disk drive, a floppy disk, a CD/DVD media or a jump drive. Different file systems use storage resources differently, and they are generally incompatible.

Popular file systems include the following:

Needless to say, the file system layer is above device drivers, and in many cases above protocol stacks. Interesting examples of file systems on top of stacks include any file system on a USB mass storage device, or networked file systems.

A networked file system, as the name implies, permits files to be accessed remotely. This represents an interesting example of layering, as a networked file system is typically built on top of the TCP/IP protocol stack, as opposed to a hard disk controller device driver.

In Windows, SMB (Server Message Block) is the most common type of networked file system. It is also called Windows share or CIFS (Common Internet File System). While the early versions of SMB was hardly secure and only intended for LAN (local area network) uses, the current version is considerably more secure.

Many non-Windows OSes support SMB. MacOS X and Linux, for example, have modules to act as SMB clients or servers (or both at the same time). This makes SMB a fairly universal networked file system.

Unix-like operating systems, however, mostly natively support NFS (Network File System), which was invented by Sun Microsystem. NFS differs from SMB in several ways. Most notably, NFS preserves user identities across a server and a client. This makes NFS very suitable for servers that have multiple users.