Some unix filesystem
s allow files to be sparse
, which means that they are logically bigger (potentially much, much
bigger) than the space they actually take up on disk. I.e. you can have a hundred 4GB files on a 500MB partition
. This is done through a very primitive form of compression
: if you seek
beyond the physical end of the file and write something there, the space in between will not actually be allocate
d (but assumed to be full of zeroes); instead, the file's inode
contains a special number that means "just zeroes here" for all those disk page
s. Physical space will only be allocated when you actually write something to those locations.
This may sound like a wart, a mostly useless special case that just complicates the design, but for some applications (especially in mathematics), it can be very useful.