2 . 3
T H E A B S T R A C T I O N S
9
Metadata:
A general term referring to information that is about something
but not directly part of it. For example, the size of a file is very important
information about a file, but it is not part of the data in the file.
Journaling:
A method of insuring the correctness of file system metadata
even in the presence of power failures or unexpected reboots.
I-node:
The place where a file system stores all the necessary metadata
about a file. The i-node also provides the connection to the contents of the
file and any other data associated with the file. The term "i-node" (which
we will use in this book) is historical and originated in Unix. An i-node is
also known as a file control block (FCB) or file record.
Extent:
A starting block number and a length of successive blocks on a
disk. For example an extent might start at block 1000 and continue for
150 blocks. Extents are always contiguous. Extents are also known as
block runs
.
Attribute:
A name (as a text string) and value associated with the name.
The value may have a defined type (string, integer, etc.), or it may just be
arbitrary data.
2.3
The Abstractions
The two fundamental concepts of any file system are files and directories.
Files
The primary functionality that all file systems must provide is a way to store
a named piece of data and to later retrieve that data using the name given to
it. We often refer to a named piece of data as a file. A file provides only the
most basic level of functionality in a file system.
A file is where a program stores data permanently. In its simplest form a
file stores a single piece of information. A piece of information can be a bit of
text (e.g., a letter, program source code, etc.), a graphic image, a database, or
any collection of bytes a user wishes to store permanently. The size of data
stored may range from only a few bytes to the entire capacity of a volume.
A file system should be able to hold a large number of files, where "large"
ranges from tens of thousands to millions.
The Structure of a File
Given the concept of a file, a file system may impose no structure on the
file, or it may enforce a considerable amount of structure on the contents of
the file. An unstructured, "raw" file, often referred to as a "stream of bytes,"
literally has no structure. The file system simply records the size of the file
and allows programs to read the bytes in any order or fashion that they desire.
Practical File System Design:The Be File System
, Dominic Giampaolo
page 9