Developed on Sun Microsystem's SunOS operating system, the world first came to know about vnodes through Steve Kleiman's often-quoted Usenix paper “Vnodes: An Architecture for Multiple File System Types in Sun UNIX” [KLEI86]. The paper stated four design goals for the new filesystem architecture:
One of the major implementation goals was to remove the need for global data, allowing the interfaces to be re-entrant. Thus, the previous style of storing filesystem-related data in the user area, such as u_base and u_count, needed to be removed. The setting of u_error on error also needed removing and the new interfaces should explicitly return an error value.
The main components of the Sun VFS architecture are shown in Figure 7.2. These components will be described throughout the following sections.
The architecture actually has two sets of interfaces between the filesystem-independent ...