Devil : An IDL for Hardware Programming - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2000

Devil : An IDL for Hardware Programming

Résumé

To keep up with the frantic pace at which devices come out, drivers need to be quickly developed, debugged and tested. Although a driver is a critical system component, the driver development process has made little (if any) progress. The situation is particularly disastrous when considering the hardware operating code (i.e.,) the layer interacting with the device). Writing this code often relies on an inaccurate or incomplete device documentation and involves assembly-level operations. As a result, hardware operating code is tedious to write, prone to errors, and hard to debug and maintain. This paper presents a new approach to developing hardware operating code based on an Interface Definition Language (IDL) for hardware functionalities, named Devil. This IDL allows a high-level definition of the communication with a device. A compiler automatically checks the consistency of a Devil definition and generates efficient low-level code. Our contributions are as follows. We introduce an {\em expressive} language to specify hardware operating layers. This expressiveness is demonstrated by the wide variety of devices that we have already specified in Devil: mouse, sound, DMA, interrupt, Ethernet, video, and IDE disk controllers. The long-awaited notion of {\em robustness} for hardware operating code is made possible by the Devil compiler which checks safety critical properties. An experimental study comparing hardware operating code in C to that generated from Devil demonstrates that writing a Devil specification is up to 5.9 times less prone to errors than writing C code, with minor (if any) loss in performance.
Fichier principal
Vignette du fichier
osdi00-merillon.pdf (189.75 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00350223 , version 1 (06-01-2009)

Identifiants

  • HAL Id : hal-00350223 , version 1

Citer

Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud Marlet, Gilles Muller. Devil : An IDL for Hardware Programming. Symposium on Operating Systems Design and Implementation, 2000, United States. pp.17-30. ⟨hal-00350223⟩
304 Consultations
226 Téléchargements

Partager

Gmail Facebook X LinkedIn More