The term device driver originated in the late 1960’s as one of several terms invented to mean a software routine which drives – that is, operates, controls, or impels – a hardware device. In other words, the device performs tasks when and as instructed by the software.
We can see that the term was new from its absence in the technical literature before that time, and from the invention and use of several different terms having the same meaning right around that time.
For example, at the same time that driver appears in the literature, the term device routine also appears, as in this 1969 issue of the AFIPS conference proceedings: “The display device routine services the light pen and keyboard I/O interrupts and schedules the display control program on the timer queue for immediate execution on a predetermined priority interrupt level.”
In 1972, one of the early uses of driver in print defines the term in context: “Associated with each device attached to a station is a device software driver in the SCU. This is a specialized routine which actually drives the devices through the SBU hardware interfaces.” (AFIPS conference proceedings, Volume 41, Part 1)
Before that, in 1970, the book Timesharing System Design Concepts by Richard W. Watson used the term “device driver” twice without defining it, and also used the term “channel-driving routines”.
In 1969, the computer journal Datamation refers to “driving routines for the tape handlers and peripherals”. That same year, we read: “A variety of data acquisition and control functions are implemented through a series of input/output device driving routines written in assembly language” in both Oil and Gas Journal and Instrumentation technology: the journal of the Instrument Society of America, Volume 16, apparently in the advertising. Also, in Annales de l’Association internationale pour le Calcul analogique, Volumes 11-12 we see “a self-scaling display-driving subroutine (for scope or plotting board)”.
In 1968, Hewlett-Packard’s advertising in the journal Computer Design, Volume 7 and others made the statement: “If you change your hardware set-up — say to handle more input/output devices — you don't have to re-program. You just enter the modular software driver for each unit.”
I cannot credit a particular person for inventing the term device driver or software driver; that information may have been lost.¹
The oldest actual software identifying itself as a driver that I can locate online is Counter Data Source Interface Driver by Steven A. Stark of Hewlett-Packard, 20 January 1970.
- In 1967 (apparently, but I cannot positively confirm that this date is correct), the computer journal Acta informatica: Volumes 7–8 has this: “A hardware monitor, or simple routine in the paging device driver, would report a current estimate of the paging device throughput 7i(»); from Equation (15) .the desired value of T^n) is 1/2S.”
The paragraph above was written in 2012. In 2018, I was able to retrieve a true copy of the cited article from https://slideheaven.com/optimal-multiprogramming.html. The 1967 publication date given by Google Book Search was wrong. Also, the correct quotation is: “A hardware monitor, or simple routine in the paging device driver, would report a current estimate of the paging device throughput T₁(n); from Equation (15), the desired value of T₁(n) is 1/2 S.” (Denning, Kahn, Leroudier, Potier, Suri, “Optimal Multiprogramming”, Acta Informatica 7, 1976, p. 212) Since a 1976 article is too recent to be relevant to the origin of the term device driver, I am relegating this information to the status of a footnote.