The nullfs filesystem is a passthrough filesystem. When nullfs is mounted it - literally copies the filesystem transaction. If a file is deleted, nullfs simply transmits the information down to the lower filesystem. Conversely, if a file is created, it does the same and tacks on all of the data needed for the filesystem underneath. Why is that a good thing? Where did nullfs come from and why?. What else, if anything, is it good for? The series focuses on where nullfs comes from, how it can be leveraged, a code walk and a skeloten implementation (nearly a blind copy).
Origins of nullfs
The answer to this is simple as quoted from KirkMcKusick:
The null filesystem was done in July 1992 by John Heideman when he was visiting Berkeley to add his stackable filesystem implementation to BSD. John is the person that built the framework and built nullfs to show others how to use it. Jan-Simon Pendry used that framework in February 1994 to build several new filesystem modules including the union filesystem, the kernel filesystem, the umap filesystem, and the portal filesystem.
Stackable filesystems can lay on top each other (as the name implies) but more importantly - they abstract the details of a regular filesystem.
A good example is to look at layers. While there are many more layers an abstraction of file layers might be: