Prototype of the device driver generation system for UNIX-like operating systems

Writing device drivers takes much time and requires effort because it needs knowledge of the target device and operating system (OS). In order to lighten the burden, the authors have proposed a model to generate device drivers and a device-driver generation system. The system generates the source code of a device driver from three inputs: the device driver specification, an OS-dependent specification and a device-dependent specification. The device drivers generated in the model are evolutionary because their features can be expanded easily. However, they are not always effective because the burden of describing the device-dependent specification, which is one of the inputs, is nearly as same as in the traditional method. In this paper, to aim at a greater reduction of the burden, device drivers are abstracted again, each input is defined afresh, and then a prototype of the system is implemented. As an example of the generation, we chose an interrupt handler of a network device, FreeBSD and Linux as the target OSs, and Etherlink XL as the target device. The OS-dependent specification and the device-dependent specification can be reused in each OS and each device, respectively. As a result, an identical device-dependent specification can be applied to both OSs. The burden in generating new device drivers or in porting device drivers to other OSs can thus be reduced.

[1]  Jan Madsen,et al.  The importance of interfaces: a HW/SW codesign case study , 1997, CODES.

[2]  Akira Fukuda,et al.  Proposal of a support system for device driver generation , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[3]  Jan Madsen,et al.  The importance of interfaces: a HW/SW codesign case study , 1997, Proceedings of 5th International Workshop on Hardware/Software Co Design. Codes/CASHE '97.

[4]  Stein Jørgen Ryan Synchronization in portable device drivers , 1998, OPSR.