A file system consists of abstract data types that are necessary for the storage, hierarchical organization, manipulation, navigation, access and retrieval of data.

Most operating systems provide a file system. File systems are represented either textually or graphically by file browsers or shells. If graphically, the metaphor of folders containing documents, other files, and nested folders is often used. (See directory and folder for more on this.) A file system is an integral part of any modern operating system. Early microcomputer operating systems' only real task was file management - a fact reflected in their names.

The most familiar file systems make use of an underlying storage device that offers access to an array of fixed-size blocks, sometimes called sectors, generally 512 bytes each. The file system software is responsible for organizing these sectors into file and directories, and keeping track of which sectors belong to which file and which are not being used. But file systems need not make use of a storage device at all. A file system can be used to organize and represent access to any data, whether it be stored or dynamically generated (eg, from a network connection).

Traditional filesystems offer facilities to create, move and delete both files and directories. They lack facilities to create additional links to a directory (hard links in Unix), rename parent links (".." in Unix), and create bidirectional links to files. They
also offer facilities to truncate, append to, create, move, delete and in-place modify files. They do not offer facilities to prepend to or truncate from the beginning of a file, let alone arbitrary insertion into or deletion from a file. The operations provided are highly asymmetric and lack the generality to be useful in unexpected contexts. For example, interprocess pipes in Linux have to be implemented outside of the filesystem because it does not offer truncation from the beginning of files.

Secure access to basic file system operations can be based on a scheme of access control lists or capabilities[?]. Access control lists have been proved insecure several decades ago, which is why research operating systems tend to use capabilities. Commercial file systems still use access control lists.

File system types can be classified into disk file systems, network file systems and special purpose file systems. A myriad modules from Plan 9 fit this last category since its architecture is based on a metaphor of file system services.

A special purpose file system is basically any file system that is not disk file system or network file system. This includes systems where the files are arranged dynamically by software, intended for such purposes as communication between computer processes or temporary file space.