%T A Process Oriented Approach to USB Driver Development %A Carl G. Ritson, Frederick R. M. Barnes %E Alistair A. McEwan, Steve Schneider, Wilson Ifill, Peter H. Welch %B Communicating Process Architectures 2007 %X Operating\-systems are the core software component of many modern computer systems, ranging from small specialised embedded systems through to large distributed operating\-systems. The demands placed upon these systems are increasingly complex, in particular the need to handle concurrency: to exploit increasingly parallel (multi\-core) hardware; support increasing numbers of user and system processes; and to take advantage of increasingly distributed and decentralised systems. The languages and designs that existing operating\-systems employ provide little support for concurrency, leading to unmanageable programming complexities and ultimately errors in the resulting systems; hard to detect, hard to remove, and almost impossible to prove correct.Implemented in occam\-p, a CSP derived language that provides guarantees of freedom from race\-hazards and aliasing error, the RMoX operating\-system represents a novel approach to operating\-systems, utilising concurrency at all levels to simplify design and implementation. This paper presents the USB (universal serial bus) device\-driver infrastructure used in the RMoX system, demonstrating that a highly concurrent process\-orientated approach to device\-driver design and implementation is feasible, efficient and results in systems that are reliable, secure and scalable.