Much of the writing published about writing device drivers focuses on the fundamental task of “bit-bashing and register-twiddling” in order to force a uncooperative piece of hardware into submission. This paper departs from this typical, nuts-and-bolts approach, exchanging it for a broader perspective of device input/output driver software operations. It includes a discussion of the use of real-time operating systems RTOS) for easier structuring of driver software.