The HP-UX VFS Architecture
HP-UX has a long and varied history. Although originally derived from System III UNIX, the HP-UX 1.0 release, which appeared in 1986, was largely based on SVR2. Since that time, many enhancements have been added to HP-UX from SVR3, SVR4, and Berkeley versions of UNIX. At the time of writing, HP-UX is still undergoing a number of new enhancements to make it more scalable and provide cleaner interfaces between various kernel components.
The HP-UX Filesystem-Independent Layer
HP-UX maintains the mapping between file descriptors in the user area through the system file table to a vnode, as with other VFS/vnode architectures. File descriptors are allocated dynamically as with SVR4.
The file structure is similar to its BSD counterpart in that it also includes a vector of functions so that the user can access the filesystem and sockets using the same set of file-related system calls. The operations exported through the file table are fo_rw(), fo_ioctl(), fo_select(), and fo_close().
The HP-UX VFS/Vnode Layer
Readers familiar with the SVR4 VFS/vnode architecture will find many similarities with the HP-UX implementation of vnodes.
The vfs structure, while providing some additional fields, retains most of the original fields of the original Sun implementation as documented in [KLEI86]. The VFS operations more resemble the SVR4 interfaces but also provide additional interfaces for quota management and enabling the filesystem to export a freeze/thaw capability.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access