next up previous contents index
Next: 20.1.1 oskit_create_fsnamespace: Create a Up: 20 Filesystem Namespace: liboskit_fsnamespace.a Previous: 20 Filesystem Namespace: liboskit_fsnamespace.a

20.1 Introduction

The OSKit filesystem namespace COM interface provides ``namei'' style translation for the application, as well as high level mount and unmount capabilities. As noted in Section 9, all name parameters to OSKit directory methods must be a single component entry in one of the specified directories. That is, a name with no ``slashes'' in it. On the other hand, the POSIX library interface to the filesystem namespace is in terms of multi-component absolute and relative pathnames. In addition, since a filesystem namespace may consist of multiple independent filesystems in a hierarchy, the ability to compose filesystems into a larger namespace is also required. The OSKit filesystem namespace COM interface bridges this gap between the interfaces by providing pathname translation from multi-component names to OSKit directory and file objects. Also included is symbolic link translation, mount and umount operations, and mountpoint traversal.

Both single and multithreaded versions of the fsnamespace component are provided. Both of these libraries can be found in the lib directory as oskit_fsnamespace.a and oskit_fsnamespace_r.a. While pathname lookup is nominally thread safe, it should be noted that changing the root or current working directory, or mounting and unmounting filesystems in a multithreaded application should be done with extreme caution. Unmounting a filesystem while another thread is translating a pathname can lead to very odd situations!

A filesystem namespace object is created with the following interface function:





Utah Flux Research Group