next up previous contents index
Next: 6.8 Buffer Management Up: 6 OSKit Device Driver Previous: 6.6 Device Driver Initialization

6.7 Device Classification

Device nodes have types that follow a C++-like single-inheritance subtyping relationship, where oskit_device_t is the ultimate ancestor or ``supertype'' of all device types.

In general, the host OS must know what class of device it is talking to in order to make use of it properly. On the other hand, it is not strictly necessary for the host OS to recognize the specific device type, although it may be able to make better use of the device if it does.

The block device class has the following attributes:

The character device class has the following characteristics:

The network device class has the following characteristics:

Note that it would certainly be possible to decompose these device classes into a deeper type hierarchy. For example, in abstract terms it might make sense to arrange character and network devices under a single supertype representing ``asynchronous'' devices. However, since the structure representing this ``abstract supertype'' would contain essentially nothing in terms of actual code or data, this additional level was not deemed useful for the driver framework. Of course, the OS is free to use any type hierarchy (or non-hierarchy) it desires for its own data structures representing devices, drivers, etc.


next up previous contents index
Next: 6.8 Buffer Management Up: 6 OSKit Device Driver Previous: 6.6 Device Driver Initialization

University of Utah Flux Research Group