Final Year Project:
Using Linux Filesystems Under Windows
Chris Bryden
BEng. Electronics and Software Engineering
School of Computer Science
University of Birmingham
8
3.2.2 Inodes
Each file is represented by a structure on disk called an inode, Each inode
contains the file type, access rights, owners, timestamps, size and pointers to
data blocks. The addresses of data blocks allocated to a file are stored in its
inode. Some block addresses are stored on the inode itself, these are known as
direct blocks, whilst further data block addresses are stored in a data block
pointed to from the inode, these are called indirect blocks. Similarly additional
data block addresses are stored as double indirect blocks: A block of indirect
block addresses pointed to from the inode. Triple indirect blocks are
implemented in a similar way, with an extra layer of indirection added. The
diagram below illustrates this concept.
3.2.3 Directories
Directories are structured in a tree like hierarchy with each directory
containing files and subdirectories. Directories are implemented as a special type
of file, with an inode to identify it. This file contains a list of the file and
subdirectory names and their corresponding inode number. When a pathname is
used it must be converted by the kernel to an inode number by following the
directory tree from the root directory, through any subdirectories, to actual file or
Inode Block Addresses
Direct Blocks
Data block containing
block addresses of
indirect blocks
Indirect blocks
Data block containing the
block addresses of the blocks containing
addresses of double indirect blocks
Data block containing
block addresses of
double indirect blocks
Double Indirect blocks
Double Indirect blocks
Data block containing
block addresses of
double indirect blocks
Double Indirection
Single Indirection