next up previous contents index
Next: 6.3 Driver Sets Up: 6 OSKit Device Driver Previous: 6.1.1 Full versus partial

6.2 Organization

In a typical OS environment in which all device drivers run in the kernel, Figure 6.1 illustrates the basic organization of the device driver framework.

   figure4297
Figure: Organization of OSKit Device Driver Framework in a typical kernel

The heavy black horizontal lines represent the actual interfaces comprising the framework, which are described in this chapter. There are two primary interfaces: the device driver interface (or just ``driver interface''), which the OS kernel uses to invoke the device drivers; and the driver-kernel interface (or just ``kernel interface''), which the device drivers use to invoke kernel support functions. The kernel implements the kernel interface and uses the driver interface; the drivers implement the driver interface and use the kernel interface.

Chapter 12 describes a library supplied as part of the OSKit that provides facilities to help the OS implement the kernel interface and use the driver interface effectively. Default implementations suitable in typical kernel environments are provided for many operations; the OS can use these default implementations or not, as the situation demands.

Several chapters in Part iv describe device driver sets supplied with the OSKit for use in environments supporting the OSKit device driver framework. Since the Flux project is not in the driver writing business, and does not wish to be, these driver sets are derived from existing kernels, either unchanged or with as little code modified as possible so that the versions of the drivers in the OSKit can easily be kept up-to-date with the original source bases from which they are derived.



University of Utah Flux Research Group