next up previous contents index
Next: 6.2 Organization Up: 6.1 Introduction Previous: 6.1 Introduction

6.1.1 Full versus partial compliance

Because the range of existing drivers to be adopted under this framework is so diverse in terms of the assumptions and restrictions made by the drivers, it would be impractical to define the requirements of the framework as a whole to be the ``union'' of all the requirements of all possible drivers. For example, if we had taken that approach, then the framework would only be usable in kernels in which all physical memory is directly mapped into the kernel's virtual address space at identical addresses, because some drivers will not work unless that is the case. This restriction would make the framework completely unusable in many common OS environments, even though there are plenty of drivers available that don't make the virtual=physical assumption and should work fine in OS environments that don't meet that requirement.

For this reason, we have defined the framework itself to be somewhat more generic than is suitable for ``all'' existing drivers, and to account for the remaining ``problematic'' drivers, we make a distinction between full and partial compliance. A fully compliant driver is a driver that makes no additional assumptions or requirements beyond those defined as part of the basic driver framework; these drivers should run in any environment that supports the framework. A partially compliant driver is a driver that is compliant with the framework, except that it makes one or more additional restrictions or requirements, such as the virtual=physical requirement mentioned above. For each partially-compliant driver provided with the OSKit, the exact set of additional restrictions made by the driver are clearly documented and provided in both human- and machine-readable form so that a given OS environment can make use of the framework as a whole while avoiding drivers that will not work in the environment it provides.


next up previous contents index
Next: 6.2 Organization Up: 6.1 Introduction Previous: 6.1 Introduction

University of Utah Flux Research Group