The BSD Filesystem Architecture
The first version of BSD UNIX, introduced in 1978, was based on 6th Edition UNIX. Almost from day one, subtle differences between the two code bases started to appear. However, with 3BSD, introduced in 1980 and based on 7th Edition, one can still see very similar code paths between 3BSD and 7th Edition UNIX, which was described in Chapter 6. Therefore, understanding the kernel paths in the earlier research editions will help in understanding the paths through the earlier BSD versions.
The source of all of the BSD kernels is now available on a single CD set, distributed under the auspices of the ancient UNIX source code license that was introduced to allow the research editions to become accessible to anyone. At the time of writing, Kirk McKusick, one of the BSD contributors, is distributing the CDs. For further information, see www.mckusick.com.
The three the most significant contributions that the Berkeley team made in the area of filesystems were quotas, the directory name lookup cache (DNLC), and the introduction of the Berkeley Fast File System (FFS), which would eventually be renamed UFS (UNIX File System). This was first documented in [MCKU84] and is described in more detail in Chapter 9.
UFS first made its appearance in later versions of 4.1BSD. Note, however, that it did not appear as an additional filesystem but as a replacement for the old research edition filesystem because, at that stage, the kernel had no means of supporting multiple ...