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:
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
- Applicative: Git
- Distributed:
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 |
Attributes
A file system has two important attributes:
In a URI:
scheme:authority/path?queryString
- the default directory path is set on the path
- and the attributes in the query string
Standard
The file system hierarchy standard is a standard for OS file system.