The study of UNIX internals may be approached from several points of view. One is to simply define all the individual kernel data structures and their basic functionality. While this presents a suitable framework for our study, we would like to also consider the kernel's construction and utilization from the perspective of an individual process or thread. The kernel perspective is macro in its scope, while the view from a process or thread is more closely related to the user or programmer's perspective.