Show
Recommended textbook solutions
Advanced Engineering Mathematics10th EditionErwin Kreyszig 4,134 solutions
Fundamentals of Engineering Economic Analysis1st EditionDavid Besanko, Mark Shanley, Scott Schaefer 215 solutions
Chemistry for Engineering Students2nd EditionLawrence S. Brown, Thomas A. Holme 945 solutions
Introduction to Chemical Engineering Thermodynamics7th EditionHendrick Van Ness, J.M. Smith, Michael Abbott 590 solutions Skip to main content This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. What is a driver?
In this articleIt is challenging to give a single precise definition for the term driver. In the most fundamental sense, a driver is a software component that lets the operating system and a device communicate with each other. For example, suppose an application needs to read some data from a device. The application calls a function implemented by the operating system, and the operating system calls a function implemented by the driver. The driver, which was written by the same company that designed and manufactured the device, knows how to communicate with the device hardware to get the data. After the driver gets the data from the device, it returns the data to the operating system, which returns it to the application. Expanding the definitionOur explanation so far is oversimplified in several ways:
We could expand our definition of driver by saying that a driver is any software component that observes or participates in the communication between the operating system and a device. Software driversOur expanded definition is reasonably accurate but is still incomplete because some drivers are not associated with any hardware device at all. For example, suppose you need to write a tool that has access to core operating system data structures, which can be accessed only by code running in kernel mode. You can do that by splitting the tool into two components. The first component runs in user mode and presents the user interface. The second component runs in kernel mode and has access to the core operating system data. The component that runs in user mode is called an application, and the component that runs in kernel mode is called a software driver. A software driver is not associated with a hardware device. This diagram illustrates a user-mode application communicating with a kernel-mode software driver. Software drivers always run in kernel mode. The main reason for writing a software driver is to gain access to protected data that is available only in kernel mode. However device drivers do not always need access to kernel-mode data and resources. So some device drivers run in user mode. For more information about processor modes, see User Mode and Kernel Mode. Bus driversThere is a category of driver we have not mentioned yet, the bus driver. To understand bus drivers, you need to understand device nodes and the device tree. For information about device trees, device nodes, and bus drivers, see Device Nodes and Device Stacks. More on function driversOur explanation so far over simplifies the definition of function driver. We said that the function driver for a device is the one driver in the stack that communicates directly with the device. This is true for a device that connects directly to the Peripheral Component Interconnect (PCI) bus. The function driver for a PCI device obtains addresses that are mapped to port and memory resources on the device. The function driver communicates directly with the device by writing to those addresses. However in many cases, a device does not connect directly to the PCI bus. Instead the device connects to a host bus adapter that is connected to the PCI bus. For example, a USB toaster connects to a host bus adapter (called a USB host controller), which is connected to the PCI bus. The USB toaster has a function driver, and the USB host controller also has a function driver. The function driver for the toaster communicates indirectly with the toaster by sending a request to the function driver for the USB host controller. The function driver for the USB host controller then communicates directly with the USB host controller hardware, which communicates with the toaster. FeedbackSubmit and view feedback for What is a small program that tells the operating system how do you communicate with a specific device?Driver. Short for device driver, it's a small program that tells the operating system how to communicate with a specific device. Each device on the computer, i.e. mouse and keyboard requires its own specific driver.
What is the small program that tells computer How do you communicate with input output peripheral device?Device driver – a software program that is designed to control a particular hardware device that is attached to a computer. The main purpose of device driver – it acts as a translator between the hardware device and operating systems or applications that use it.
How do operating systems communicate with devices?In order for the operating system to talk to your hardware, it needs drivers. Drivers teach the operating system to interact with each bit of hardware. Graphics cards, sound cards, networking cards, USB peripherals, and everything else you connect to your computer relies on drivers.
What are the small software programs that help the operating system use the device?A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.
|