next up previous contents index
Next: 3.1 Header File Conventions Up: Part II: Interfaces Previous: Part II: Interfaces

3 Introduction to OSKit Interfaces

The OSKit's interfaces provide clean, well-defined intra-process or intra-kernel protocols that can be used to define the interaction between different modules of an operating system. For example, the OSKit provides a ``block I/O'' interface for communication between file systems and disk device drivers, a ``network I/O'' interface for communication between network device drivers and protocol stacks, and a file system interface similar to the ``VFS'' interface in BSD. However, the OSKit's interfaces were designed with a number of properties that make them much more useful as parts of a toolkit than are comparable traditional OS-level interfaces. These properties partly stem from the use of the Component Object Model (COM), described in Chapter 4 as the underlying framework in which the interfaces are defined, and partly just from careful interface design with these properties in mind. The primary important properties of the OSKit interfaces include:

As with all other parts of the OSKit, the client is not required to use the OSKit's interfaces as the primary inter-module interfaces within the system being designed. Similarly, the client may use only some of the interfaces and not others, or may use the OSKit's interfaces as a base from which to build more powerful, efficient interfaces specialized to the needs of the system being developed. Naturally, since the specific components provided in the OSKit must have some interface, they have been designed to use the standardized OSKit interfaces so that they can easily be used together when desired; however, the OS developer can choose whether to adopt these interfaces as primary inter-module interfaces in the system, or simply to use them to connect to particular OSKit components that the developer would like to use.




next up previous contents index
Next: 3.1 Header File Conventions Up: Part II: Interfaces Previous: Part II: Interfaces

University of Utah Flux Research Group