Back Next
File pointers
  File pointer table has three types of pointers.

  1st 12 are direct and list the chs of the data storage block.

  13th is an indirect pointer - points to data block of file pointers.

  14th is a double indirect pointer - points to a block of pointers to
  other blocks of pointers.

  15th is a triple indirect pointer.

  Assume a 4 byte pointer for each cluster  and 2 KiB blocks or clusters.
  Number of possible pointers :
    12  # 12 primary pointers in inode
  + 512 (2048 bytes / 4 bytes/pointer) # 1st indirect
  + 512^2 # 2nd indirect
  + 512^3 # indirect

    12 * 2 KiB = 24 KiB.
    512 * 2 KiB ~ 1MiB (+ 24 KiB). 
    512^2 * 2 KiB ~  2^18 * 2^11 = 2^29 or 512 MiB (+ 24 KiB + 1 MiB) 
 
    12 + 2^9 + 2^18 + 2^27 * 2KiB bytes/cluster = > 256 GB 

  Note that while it may requires mulitiple reads of the pointer chain, the
  binary structure limits it to 4 sequential reads at most before being able
  to address the cluster itself. 

  From Wikipedia.org