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