Note: the code described here appears in the book but does not appear in our on-line source. This is unfortunate as it is impossible to gain a complete understanding of the file system without access to 100% of the code. Also, there seem to be some inconsistencies between parts of the code contained in the book which describe the file system. The description below represents the understanding I gained from the somewhat limited resources.
File systems provide a variety of functionality. One function is to define the data structures for, and maintain files on the disk. Another function provides the user view of the file system (maps file names to files on the disk and organizes user-level directories). A third function provides file operations such as file creation, deletion, writing, reading, seeking, etc. The XINU filesystem, while fairly simple, does most of these.
Files in XINU (like in UNIX) are assumed to have no structure other than that imposed by the application program. Thus each file is treated as a simple sequence of bytes.
Again like UNIX, files in XINU are allowed to grow dynamically. Some very simple file systems require that the file creator specify a fixed size for the file (which cannot change over the life of the file).