27

According to Wikipedia:

… a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device.

What is the origin of the term driver as used in the above reference? I’ve googled around a bit but haven’t been able to find an answer.

3 Answers 3

16

Device drivers as we know them (i.e. code that's loaded into the kernel to control a device) have probably been around since UNIX and VMS in the mid-1970s.

Operating systems have always had to control devices (tape drives, paper tape and punch card readers), so device drivers in terms of software for controlling devices have probably been around at about as long as there have been operating systems.

A driver (or driver circuit), an electronic circuit used to control another circuit or component, is an old concept. Since hackers tend to "borrow" hardware terms, I would guess that the term for software drivers or device drivers came from there.

1
  • 2
    Probably derived off of the "to direct the motions and course of (a draft animal)" meaning of "to drive". Just like how a ploughsman drives the ox, the circuit drives the other components. Similarly, the same is done with hardware and software drivers. Commented Jan 27, 2012 at 21:38
42
+100

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.

Footnotes

  1. 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.
2
  • 2
    Nice research. +1
    – Gnawme
    Commented Jan 28, 2012 at 0:58
  • @MetaEd: Your research is good, but i don't agree that the origin of this term is from 1960s. The question is asked about the origin of "driver" is science, not "device driver" in science. Try searching for 'data device driver' on google.com/patents and you will find drivers (hardware though, but not like screw driver :P) from around 1950 (or maybe before). Cheers!!
    – Fr0zenFyr
    Commented May 9, 2012 at 5:53
4

"Mary was the driver of the car." Mary was controlling the car.

"Jack was the main driver behind this new product." Jack was the one who ran it or got it started or kept it going.

"Program xyz.drv is the driver for the video display." This program controls the display.

The usage is consistent with how the word is used in general English.

As to why whoever first choose to use the word used "driver" rather than "operator" or "manipulator" or any of the dozens of other potential words, well, you'd need an historical analysis, and I can't find that in a quick search either.

5
  • As for the function of drivers, yes, this is an obvious explanation. However, I was looking for an historical reference where this was first used. I've found a link (answers.google.com/answers/threadview/id/548246.html) where one user claims to have found an example dating back to 1978, but doesn't mention where. Commented Jan 27, 2012 at 21:24
  • Here are a couple of instances from 1969 - in one of which the word "driver" is quotated, suggesting it was considered quite a "daring" new usage at the time. But it's not really an operator/manipulator - more of a guide/marshaller making sure the software-level call for something to be done is validated/repackaged into the correct form for the device to recognise and comply with the instructions. Commented Jan 27, 2012 at 21:26
  • @FumbleFingers - that's actually a really nice reference, and dating quite a while back. Thanks! Has anyone got an even older one? Commented Jan 27, 2012 at 21:34
  • @laginimaineb: Google Books shows there's another from 1968, but I can't view the context. Besides, I particularly liked that the citation I actually linked had one instance in quotes. Bear in mind we're going back so far by then that the real-world referent had only just come into existence - in anything earlier, the software and the hardware were invariably designed and implemented as an integral whole - so "driver-layer" software wouldn't really have meant anything, except to really forward-looking software engineers (and they really were engineers, not coders, back then! :) Commented Jan 27, 2012 at 21:48
  • I guess you're right, the term must have originated around that time when operating systems became gradually more modular and less hardware dependent. Anyway, I would like to accept your answer, if only you'd post it as one ;) Commented Jan 27, 2012 at 21:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.