FACTOID # 8: Bookworms: Vermont has the highest number of high school teachers per capita and third highest number of librarians per capita.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Device driver


A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device. A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ... Computer hardware is the physical part of a computer, including the digital circuitry, as distinguished from the computer software that executes within the hardware. ...


A driver typically communicates with the device through the computer bus or communications subsystem to which the hardware is connected. When a calling program invokes a routine in the driver, the driver issues commands to the device. Once the device sends data back to the driver, the driver may invoke routines in the original calling program. Drivers are hardware-dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface. In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers and typically is controlled by device driver software. ... In computer science, a subroutine (function, method, procedure, or subprogram) is a portion of code within a larger program, which performs a specific task and can be relatively independent of the remaining code. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ...

Contents

Purpose

A device driver simplifies programming by acting as a translator between a device and the applications or operating systems that use it. The higher-level code can be written independently of whatever specific hardware device it may control. Every version of a device, such as a printer, requires its own specialized commands. In contrast, most applications access devices (such as sending a file to a printer) by using high-level, generic commands, such as PRINTLN. The driver accepts these generic statements and converts them into the low-level commands required by the device. An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... A computer printer, or more commonly a printer, produces a hard copy (permanent human-readable text and/or graphics) of documents stored in electronic form, usually on physical print media such as paper transparencies. ...


Design

Device drivers can be abstracted into logical and physical layers. Logical layers process data for a class of devices such as ethernet ports or disk drives. Physical layers communicate with specific device instances. For example, a serial port needs to handle standard communication protocols such as XON/XOFF that are common for all serial port hardware. This would be managed by a serial port logical layer. However, the logical layer needs to communicate with a particular serial port chip. 16550 UART hardware differs from PL-011. The physical layer addresses these chip specific variations. Conventionally, OS requests go to the logical layer first. In turn, the logical layer calls upon the physical layer to implement OS requests in terms understandable by the hardware. Inversely, when a hardware device needs to respond to the OS, it uses the physical layer to speak through the logical layer. XON/XOFF is software data flow communications protocol for controlling the flow of data between computers and other devices. ... The 16550 UART (universal asynchronous receiver transmitter) is made by National Semiconductor. ...


Linux device drivers are built into the OS kernel, and thus get built for the appropriate bit-width automatically. Provided that sufficient technical information about the hardware is available, the Linux kernel team will write the drivers free of charge.[1][2][3] This absolves both hardware vendors and end users from having to worry about drivers. A kernel connects the application software to the hardware of a computer. ...


Additionally, the device drivers can either be built as parts of the kernel or can be built separately as loadable modules. The Windows(TM) .sys files and Linux .ko modules are loadable device drivers. The advantage of loadable device drivers is that they can be loaded only when necessary and then unloaded, thus saving .


Development

Writing a device driver requires an in-depth understanding of how the hardware and the software of a given platform function. Drivers "...operate in a highly privileged environment and can cause disaster if they get things wrong..." [1] In contrast, most user-level software on modern operating systems can be stopped without greatly affecting the rest of the system. Even drivers executing in user mode can crash a system if the device is erroneously programmed. These factors make it more difficult and dangerous to diagnose problems. In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... User mode refers to two similar concepts in computer architecture. ...


Thus drivers are usually written by software engineers who come from the companies that develop the hardware. This is because they have better information than most outsiders about the design of their hardware. Moreover, it was traditionally considered in the hardware manufacturer's interest to guarantee that their clients can use their hardware in an optimum way. Typically, the logical device driver (LDD) is written by the operating system vendor, while the physical device driver (PDD) is implemented by the device vendor. But in recent years non-vendors have written numerous device drivers, mainly for use with free operating systems. In such cases, it is important that the hardware manufacturer provides information on how the device communicates. Although this information can instead be learned by reverse engineering, this is much more difficult with hardware than it is with software. Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. ... Manufacturing is the transformation of raw materials into finished goods for sale, or intermediate processes involving the production or finishing of semi-manufactures. ... Clockwise from top: The logo of the GNU Project, the Linux kernel mascot Tux, and the BSD Daemon Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions only... Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc. ...


Microsoft has attempted to reduce system instability due to poorly written device drivers, by creating a new framework for driver development, called Windows Driver Foundation (WDF). This includes User-Mode Driver Framework (UMDF) that encourages development of certain types of drivers - primarily those that implement a message-based protocol for communicating with their devices - as user mode drivers. If such drivers malfunction, they do not cause system instability. The Kernel-Mode Driver Framework (KMDF) model continues to allow development of kernel-mode device drivers, but attempts to provide standard implementations of functions that are well known to cause problems, including cancellation of I/O operations, power management, and plug and play device support. Windows Driver Foundation (WDF) is a Microsoft development group which is building tools to aid in the creation of high-quality device drivers for Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and later editions of Windows. ... The User-Mode Driver Framework is a device-driver development platform first introduced with Microsofts Windows Vista operating system, and is also available for Windows XP. It facilitates the creation of drivers for certain classes of devices. ... In computer science, message passing is a form of communication used in concurrent programming, parallel programming, object-oriented programming, and interprocess communication. ... The Kernel-Mode Driver Framework (KMDF) is a driver framework developed by Microsoft as a tool to aid driver developers create and maintain Kernel mode device drivers for Windows 2000[1] and later releases. ...


Apple has an open-source framework for developing drivers on Mac OS X called the I/O Kit. Mac OS X (IPA: ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ... The I/O Kit is an open-source framework in the XNU kernel that helps developers code device drivers for Darwin-enabled operating systems (one popularly known as Apples Mac OS X.) The I/O Kit framework was originally introduced at the release of Mac OS X along with...


Device driver applications

Because of the diversity of modern hardware and operating systems, many ways exist in which drivers can be used. Drivers are used for interfacing with: For other uses, see Hardware (disambiguation). ... An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. ...

Common levels of abstraction for device drivers are A computer printer, or more commonly a printer, produces a hard copy (permanent human-readable text and/or graphics) of documents stored in electronic form, usually on physical print media such as paper transparencies. ... A GeForce 4 4200-based graphics card A graphics card or video card is a component of a computer which is designed to convert a logical representation of an image stored in memory to a signal that can be used as input for a display medium, most often a monitor... A network card, network adapter or NIC (network interface controller) is a piece of computer hardware designed to allow computers to communicate over a computer network. ... A sound card (also known as an audio card) is a computer expansion card that can input and output sound under control of computer programs. ... In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers and typically is controlled by device driver software. ... This article does not cite any references or sources. ... Bandwidth is the difference between the upper and lower cutoff frequencies of, for example, a filter, a communication channel, or a signal spectrum, and is typically measured in hertz. ... Energy Input: The energy placed into a reaction. ... An Apple pro mouse A pointing device is any computer hardware component (specifically human interface device) that allows a user to input spatial (ie, continuous and multi-dimensional) data to a computer. ... Operating a mechanical 1: Pulling the mouse turns the ball. ... A 104-key PC US English QWERTY keyboard layout The Dvorak Simplified Keyboard layout A standard Hebrew keyboard showing both Hebrew and QWERTY. A computer keyboard is a peripheral partially modelled after the typewriter keyboard. ... USB redirects here. ... This article does not cite any references or sources. ... Typical hard drives of the mid-1990s. ... The CD-ROM (an abbreviation for Compact Disc Read-Only Memory (ROM)) is a non-volatile optical data storage medium using the same physical format as audio compact discs, readable by a computer with a CD-ROM drive. ... A floppy disk is a data storage device that is composed of a disk of thin, flexible (floppy) magnetic storage medium encased in a square or rectangular plastic shell. ... ATA cables: 40 wire ribbon cable top, 80 wire ribbon cable bottom Advanced Technology Attachment (ATA) is a standard interface for connecting storage devices such as hard disks and CD-ROM drives inside personal computers. ... A SATA power connector. ... Scuzzy redirects here. ... For library and office filing systems, see Library classification. ... In computing, a scanner is a device that analyzes images, printed text, or handwriting, or an object (such as an ornament) and converts it to a digital image. ... Look up digital camera in Wiktionary, the free dictionary. ...

  • For hardware:
    • Interfacing directly
    • Using some higher-level interface (e.g. Video BIOS)
    • Using another lower-level device driver (e.g. file system drivers using disk drivers)
    • Simulating work with hardware, while doing something entirely different
  • For software:
    • Allowing the operating system direct access to hardware resources
    • Implementing only primitives
    • Implementing an interface for non-driver software (e.g. TWAIN)
    • Implementing a language, sometimes quite high-level (e.g. PostScript)

Choosing and installing the correct device drivers for given hardware is often a key component of computer system configuration. Video BIOS is the BIOS of a graphics card in a computer. ... In computer science, primitive types, as distinct from composite types - are datatypes provided by a programming language as basic building blocks. ... TWAIN is a standard for acquiring images from image scanners: an image capture API for Microsoft Windows and Apple Macintosh operating systems. ... For the literary term, see Postscript. ...


Virtual device drivers

A particular variant of device drivers are virtual device drivers. They are used in virtualization environments, for example when an MS-DOS program is run on a Microsoft Windows computer or when a guest operating system is run on, for example, a Xen host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take the opposite role and emulate a piece of hardware, so that the guest operating system and its drivers running inside a virtual machine can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g. function calls. The virtual device driver can also send simulated processor-level events like interrupts into the virtual machine. Microsofts disk operating system, MS-DOS, was Microsofts implementation of DOS, which was the first popular operating system for the IBM PC, and until recently, was widely used on the PC compatible platform. ... “Windows” redirects here. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... Xen is a free virtual machine monitor for IA-32, x86-64, IA-64 and PowerPC architectures. ... In computer science, a virtual machine is software that creates a virtualized environment between the computer platform and its operating system, so that the end user can operate software on an abstract machine. ... In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one or more statement blocks; such code is sometimes collected into software libraries. ... In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ...


Open drivers

  • Printers: CUPS.
  • Scanners: SANE.
  • Video: Vidix

Cups may refer to: the Common Unix Printing System cup as a drinking vessel, a unit of volume, etc. ... Scanner Access Now Easy (SANE) is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, handheld scanner, video- and still-cameras, frame-grabbers, etc. ... VIDIX is VIDeo Interface for *niX. VIDIX is portable interface which was designed and introduced as interface to userspace drivers to provide DGA (Direct Graphics Access). ...

Driver APIs

A screenshot of alsamixer ALSA (an acronym for Advanced Linux Sound Architecture) is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing drivers for sound cards. ... The I/O Kit is an open-source framework in the XNU kernel that helps developers code device drivers for Darwin-enabled operating systems (one popularly known as Apples Mac OS X.) The I/O Kit framework was originally introduced at the release of Mac OS X along with... Apple Inc. ... Mac OS X (IPA: ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ... The Installable File System (IFS) is a Filesystem API in IBM OS/2 and Microsoft Windows NT that enables the operating system to recognize and load drivers for filesystems. ... A filesystem API is an application programming interface that allows developers to add support of a filesystem to an operating system without the operating system needing to know anything about what filesystem it is or how it works. ... The Network Driver Interface Specification (NDIS) is an application programming interface (API) for network interface cards (NICs). ... A network card, network adapter or NIC (network interface controller) is a piece of computer hardware designed to allow computers to communicate over a computer network. ... The Open Data-Link Interface (ODI), developed by Apple and Novell, serves the same function as Microsoft and 3COMs Network Driver Interface Specification (NDIS). ... Scanner Access Now Easy (SANE) is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, handheld scanner, video- and still-cameras, frame-grabbers, etc. ... The Uniform Driver Interface (UDI) is a project developed by several companies to define a portable interface for device drivers. ... Windows Display Driver Model (WDDM) is the new graphic driver model for video cards running under Windows Vista. ... Windows Vista is a line of graphical operating systems used on personal computers, including home and business desktops, notebook computers, Tablet PCs, and media centers. ... Windows Driver Foundation (WDF) is a Microsoft development group which is building tools to aid in the creation of high-quality device drivers for Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and later editions of Windows. ... In computing, the Windows Driver Model (WDM) — also known (somewhat misleadingly) at one point as the Win32 Driver Model — is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and...

See also

A microcontroller, like this PIC18F8720 is controlled by firmware stored inside on FLASH memory In computing, firmware is a computer program that is embedded in a hardware device, for example a microcontroller. ... In computing, a class driver is a type of hardware device driver that can operate a large number of different devices of a broadly similar type. ... Open Hardware (OH) is a part of the GNU project in which hardware designers share their work by disclosing the schematics and software (GNU drivers) used in their designs. ... In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to frequently used values—typically, these values are involved in multiple expression evaluations occurring within a small region on the program. ... In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... In computers, a printer driver or a print processor is a piece of software that converts the data to be printed to the form specific to a printer. ... F6 disk is a colloquial name for a floppy disk containing a Microsoft Windows NT device driver for a disk or RAID system. ...

References

  1. ^ Greg Kroah-Hartman. Linux kernel monkey log - Free Linux Driver Development!. Retrieved on 2007-05-23.
  2. ^ Don Marti. Linux driver development project bears fruit. Retrieved on 2007-05-23.
  3. ^ Linux driver project wiki. Retrieved on 2007-06-14.

Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 143rd day of the year (144th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 143rd day of the year (144th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era in the 21st century. ... is the 165th day of the year (166th in leap years) in the Gregorian calendar. ...

External links


  Results from FactBites:
 
device driver: Definition and Much More from Answers.com (1739 words)
Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications.
Writing a device driver is considered a challenge in most cases, as it requires an in-depth understanding of how a given platform functions, both at the hardware and the software level.
The KMDF Kernel Mode Driver Framework model continues to allow development of kernel-mode device drivers, but attempts to provide standard implementations of functions that are well known to cause problems, including cancellation of I/O operations, power management, and plug and play device support.
Device Driver Development at Software Technologies Group (2213 words)
These device drivers were ported to both IA64 and AMD64 platforms, and the code tree was modified to build the binaries for the different platforms from a single set of source code.
The updated driver also provides an interface to both insert keyboard and mouse data into the input data stream, and to suppress data coming from keyboards and mice attached to the system allowing an external application to control the keyboard and mice data passed on by the driver.
The device driver was modified in such a way that it could auto-detect updated and legacy boards and handle both correctly from within a single driver.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m