the total of information blocks
Inodes come numbered consecutive. A number 1 many inodes come reserved for historical reasons, followed per inode for the root directory.
Directory files contain merely a listings of filenames in a directory & the inode associated by using every file. Altogether file metadata is kept in the inode.
History and evolution
Early versions of unix utilized the filesystem it referred to just when FS. FS merely involved boot prevent, superblock, a clump of inodes, & the information obstructs. This worked swell for a little disks early unixes were designed for, however when technology advanced & disks had big, moving a head back & forth between a clump of inodes & the information blockades it referred to stimulated thrashing. BSD optimized this inside FFS by inventing cylinder groups, breaking a disk higher into little chunks, every by using its have inode clump & information interferes.
the intent of BSD FFS is to try to localize associated information deflects & metainformation in the equivalent cylinder class action, & ideally, tons of the contents of a directory (each data & metadata for even all the files) in the equivalent or touching by cylinder class action, so reducing fragmentation caused by scattering a directory's contents on top a wholly disk.
A select few of the performance parameters in the superblock involved total of tracks & sectors, disk rotation speed, head speed, & alignment of the sectors between tracks. Inside a fully optimized body, the head can be moved between close tracks to understand scattered sectors murder of alternating tracks when waiting for the platter to whirl.
When disks grew big & big, sector level optimisation became obsolete (especially by using disks that utilized linear sector enumeration & variable sectors by the track). Using big disks & big files, split reads became other of the condition. To combat this, BSD increased a filesystem prevent size from either 1 sector to 8k. This has many results. the chances of a file's sectors existence contiguous is very much greater. A total of overhead to listing a file's impedes is reduced. the total of jams representable around a fixed bit breadth prevent total is increased (allowing big disks).
By having big prevent sizes, disks by having many little files would waste much of space, thus BSD added prevent level fragmentation, within which a survive unfair prevent of information from either several files can be stored in one "fragment" prevent instead of multiple mostly empty jams.
Implementations
Virtually all seller adapted UFS to their have utilizes, adding proprietary extensions that might not become recognized by more trafficker' versions of unix. Amazingly, numerous have at times continued to use a original prevent size & information field breadth when a original UFS, and so occasionally degree of (scroll through) compatibility remains through platforms.
FreeBSD Five.Nought introduced UFS2, which adds 64-bit prevent pointers (permitting volumes larger than 1TB), variable-sized hinders (similar to extents), extended flag fields and extended attribute trend lines. FreeBSD as well introduced soft updates and the ability to produce file patterns snapshots for both UFS1 & UFS2. These own since been ported to NetBSD.
Linux includes a UFS implementation for binary compatibility at the understand level using more unices, however since no standard implementation for the vender extensions to UFS, Linux doesn't keep close at hand to the full trend lines for writing to UFS.
When of Solaris 7, Sun Microsystems included UFS Logging in the Solaris Operating Environment, which brought filesystem journaling to UFS. Solaris UFS likewise has extensions for big files & big disks & more features.