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