DATE '99 Proceedings of the conference on Design, automation and test in Europe
IEEE Transactions on Software Engineering
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software Analysis and Model Checking
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Synthesizing operating system based device drivers in embedded systems
Proceedings of the 1st IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
Devil: an IDL for hardware programming
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
A hardware/software codesign approach for programmable IO devices
GLSVLSI '05 Proceedings of the 15th ACM Great Lakes symposium on VLSI
HAIL: a language for easy and correct device access
Proceedings of the 5th ACM international conference on Embedded software
The design and implementation of microdrivers
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Checking the hardware-software interface in spec#
Proceedings of the 4th workshop on Programming languages and operating systems
Proceedings of the 4th ACM European conference on Computer systems
Towards device emulation code generation
Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Automatic device driver synthesis with termite
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Optimal allocation of I/O device parameters in hardware and software codesign methodology
EUC'07 Proceedings of the 2007 international conference on Embedded and ubiquitous computing
Decaf: moving device drivers to a modern language
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Correctness proofs for device drivers in embedded systems
SSV'10 Proceedings of the 5th international conference on Systems software verification
Automatic generation of hardware/software interface with product-specific debugging tools
EUC'06 Proceedings of the 2006 international conference on Embedded and Ubiquitous Computing
Hi-index | 0.00 |
Device drivers are difficult to write and error-prone. They are usually written in C, a fairly low-level language with minimal type safety and little support for device semantics. As a result, they have become a major source of instability in operating system code.This paper presents NDL, a language for device drivers. NDL provides high-level abstractions of device resources and constructs tailored to describing common device driver operations. We show that NDL allows for the coding of a semantically correct driver with a code size reduction of more than 50% and a minimal impact on performance.