About

A file system (often also written as filesystem) is an application that stores and organizes files and their data (content).

Essentially, it organizes these files for storage, organization, manipulation, and retrieval.

The file system can be:

  • local provided by the computer's operating system (or third additional party)
  • or remote.

The way a computer or an application:

  • organizes,
  • names,
  • stores,
  • secures,
  • searches
  • and manipulates files

depends and is implemented through what we refer as a file system.

File systems vary greatly.

  • In some cases the file system is a single hierarchy of files with one top-level root directory (Linux)
  • In other cases it may have several distinct file hierarchies, each with its own top-level root directory. (Windows C: or D:)

A file system is typically composed of one or more underlying file-stores (partition) that provide the storage for the files. (Local, NFS,…) Theses file stores can also vary in the features they support, and the file attributes or meta-data that they associate with files.

Structure

Logical

A file system is essentially a container with organized, homogenous elements referred to as file system objects.

A file system provides access to file system objects.

A file system manages the following object:

that are stored in:

Physical (Storage device)

See file store,

Most Operating System file systems make use of an underlying data storage device that offers access to an array of fixed-size physical sectors, generally a power of 2 in size (512 bytes or 1, 2, or 4 KiB are most common).

The file system is responsible for organizing these sectors into files and directories, and keeping track of which sectors belong to which file and which are not being used.

Most file systems address data in fixed-sized units called “clusters” or “blocks” which contain a certain number of disk sectors (usually 1-64). This is the smallest amount of disk space that can be allocated to hold a file.

Type

Operation Name

This section lists the name of file system operations (They may have other names but they are the most common ones).

function name direction should exist description
resolve leaf no resolve returns a descendant path (the actual path is seen as a directory)
resolveSibling current no resolveSibling returns a sibling path (ie a path in the same directory)
closest root yes closest returns a path if the file name exists in its ascendant
toAbsolutePath - - to transform a relative path to an absolute path
toRelativePath - - to transform an absolute path to a relative path

1)

Attributes

A file system has two important attributes:

In a URI:

scheme:authority/path?queryString

Standard

The file system hierarchy standard is a standard for OS file system.

Documentation / Reference

1)
See the API for Java file operations: javase/9/docs/api/nio/file/Files.html and path operations: javase/9/docs/api/nio/file/Path.html