8
Catalog
I Definition of Device Driver | |
II Function of Device Driver | |
III Versions of of Device Driver | 1. Official Version |
2. WHQL Certified Version | |
3. Third-party Version | |
4. Modified Version | |
5. Beta Version | |
IV Development Platform of Device Driver | 1. Microsoft Platform |
2. Unix Platform | |
V Installation Sequence of Device Driver |
What is Divice Driver?
I Definition of Device Driver
Device driver is a special program that allows computers and devices to communicate with each other. It is equivalent to a hardware interface, and the operating system can only control the operation of the hardware devices through this interface. If the driver of a device is not properly installed, the device won't work properly.
Hardware Interface Design
For this reason, the position of the device driver in the system is very important. Generally, after the operating system is set up, the next thing is to install the driver of the hardware device. However, in most cases, hardware devices such as hard disks, displays, CD-ROM, etc. do not need drivers, while graphics cards, sound cards, scanners, cameras, modems, etc. need to install drivers. In addition, different versions of the operating system support different hardware devices. In general, operating system of higher version can support more hardware devices.
CD-ROM Driver
The device driver is used to tell the operating system the function of the hardware itself, achieving mutual translation between the electronic signals of the hardware device and the high-level programming language of the operating system and software. Device drivers usually account for more than 70% of the kernel source in the operating system, and its updates and maintenance often involve more than 35% of the source code modifications.
When the operating system needs to use a certain hardware, like making the sound card play music, it will first send the corresponding command to the sound card driver. After the sound card driver receives the command, it will immediately translate it into an electronic signal that the sound card can understand, making the sound card play music.
So in a nutshell, the driver provides an interface between the hardware and the operating system and coordinates the relationship between the two. Therefore, people call the driver “the soul of the hardware", “he master of the hardware”, and " the bridge between hardware and system."
A driver is a small piece of code added to the operating system. It contains information about the hardware devices, based on which the computer can communicate with devices. The driver is also a configuration file written by the hardware manufacturer according to the operating system. Different operating systems have hardware drivers, and each hardware manufacturer will keep upgrading the driver in sequence to ensure hardware compatibility and enhance hardware functions. For example, Nvidia will upgrade their graphics drivers 2 to 3 times per month on average.
Nvidia Graphic Driver Installation
II Function of Device Driver
The driver is essentially a software code, which is to complete the data transfer between the computer system and the hardware device. It is a medium between the operating system and the hardware, which conveying the functions of hardware device itself to the operation system, and the standard instructions of the operating system to the hardware device, thus achieving a seamless connection between the two sides.
In theory, all hardware devices need to be installed with appropriate drivers to work properly. However, devices such as CPU, memory, mainboard, floppy disk, keyboard, display, etc. do not need drivers. Why? This is mainly because these hardware is necessary for a personal computer, and can be directly supported by the BIOS (Basic Input/Output System) without drivers after the operating system is installed. However, for other hardware, such as network cards, sound cards, graphics cards, etc., drivers must be installed, otherwise the hardware will not work properly.
A BIOS Guide
Of course, not all drivers are operating on the actual hardware. Some drivers are only use to assist system operation, such as ashmen and binder, which are not the standard drivers of the Linux system.
III Versions of of Device Driver
Drivers can be divided into official version, Microsoft WHQL certified version, third-party version, modified version, and Beta version.
3.1 Official Version
The official version of the device driver is developed according to the design of the chip manufacturer, which is also known as the driver of public version. Usually, the official version is released through the official website or attaching CD with the hardware products. Stability and good compatibility are the biggest highlights of the official version of the driver, which are also distinguishing features from the modified version and the beta version. Therefore, ordinary users are recommended to use the official version, and players as early adopters who like expressing their individuality could use the modified version and the beta version.
3.2 WHQL Certified Version
WHQL is the abbreviation of Windows Hardware Quality Labs. It is a certification of Microsoft for the drivers of hardware vendors to test the stability and compatibility between the driver and operating system. That is to say, the driver that passed the WHQL certification is basically compatible with the Windows system.
WHQL Testing
3.3 Third-party Version
Driver of third-party version is released by the hardware OEM (original equipment manufacturer) based on official drivers. The third-party driver has stability and good compatibility, and has more complete functions and more powerful overall performance than the official version. Therefore, for brand-name computer users, third-party driver is the first choice. And for assembling computer users, the installation of third-party driver may be complicated, so the official version is still preferred.
3.4 Modified Version
The modified version of the driver is the first appeared on the graphics cards. At that time, game enthusiasts hold a high expectations of the graphics card, but the graphics card drivers released by the manufacturers can not meet their needs, so the modified graphics drivers emerged at the right moment.
3.5 Beta Version
The beta driver is the driver that is in testing phase and has not yet been officially released. Such drivers tend to have poor stability and compatibility with the system. New experience and risks always exist at the same time, so users of the beta version should be prepared for occurrence of malfunctions.
IV Development Platform of Device Driver
The development of the device driver needs a fairly clear and advanced platform technology in hardware and software, which is very challenging.
4.1 Microsoft Platform
Insequence to greatly reduce the burden on driver developers, Microsoft continues to improve the development architecture and development architecture of the device driver. From the early complex VxD to the Windows Driver Model (WDM) development architecture on Windows XP, now Windows Driver Foundation (WDF) has become a new generation of driver development architecture on Windows platform. This architecture greatly simplifies the development process of the device driver, which includes UserMode Driver Framework and Kernel Mode Driver Framework. Before drivers are developed on the Windows platform, the DDK(Device Drivers Kit) package must be installed to support both WDM and WDF architectures.
4.2 Unix Platform
Linux, a variant of UNIX, inherits the device management method of UNIX, which is to access the device through the file system layer. This method can achieve "device independence" and can be easily extended according to the update of hardware peripherals.
Device Indpendence
Devices in Linux can be roughly classified into three categories: character devices, block devices, and network devices.
Character devices do not have buffers. They process data sequentially in bytes, and do not support random access. Common character devices are ordinary printers, serial ports of systems, terminal displays, simple buttons in embedded devices, tablet, etc.
Block devices refer to devices that process data in blocks at the time of input and output. Generally, buffering technique is used to support random access of data. Typical block devices include hard disks an CD-ROM.
The upper layer facing the character device and the block device is the file system layer. The access interfaces of the block devices and the character devices are both a set of file-based system calls for the users, such as read and write.
The upper layer facing the network device is the network protocol layer. There is no corresponding node in the file system. The communication between the kernel and the network drivers uses a set of functions related to packet transfer rather than simple read and write operations.
Each device has a pair of parameters of the major device number and the minor device number as unique identifiers. The major device number indicates the driver for the device. And the minor device number is used to distinguish instances of specific drivers. The major device number can be obtained dynamic allocation or designation.
Device Driver Structure in Linux
V Installation Sequence of Device Driver
The general sequence of driver installation is: motherboard chipset → graphics card (VGA) → sound card (Audio) → network card (LAN) → wireless network card (Wireless LAN) → infrared (IR) → touchpad → PCMCIA control→ Flash Media Reader → Modem → Other (such as TV card, CDMA Internet adapter, etc.). Installation out ofsequence is likely to cause some software installation to fail.
5.1 Install the service pack (SP) patch for the operating system.
The driver directly communicate with the operating system and hardware, so we should first solve the compatibility problem of the operating system with the SP patch, so as to ensure the system operation.
Windows7 Service Pack Installation
5.2 Install the motherboard driver
The motherboard driver is mainly used to open the built-in functions and features of the motherboard chipset. Inside the motherboard driver, there is usually the IDE driver or patch for motherboard identification and hard disk management, such as INF driver of the Intel chipset and 4in1 patch of VIA.
5.3 Install the directX driver
DirectX is the application programming interface (API) embedded in the Microsoft operating system, which consists of four parts: display part, sound part, input part and network part. The display part is subdivided into Direct Draw for 2D acceleration and Direct 3D for 3D acceleration. And its latest version-- DirectX 9.0C can bring better sound effects, support more input devices for games, enhance the network connection and provide more connection modes.
DirectX Diagnostic Tool in Windows 10
5.4 Install board-type drivers
Install the graphics card, sound card, network card, modem and other board-type drivers inserted on the motherboard.
5.5 The peripheral drivers such as printers, scanners, and readers can be installed
This kind of installation sequence can make the system files match reasonably and work together to give full play to the overall performance of the system.
In addition, devices such as displays, keyboards, and mice also have specialized drivers, especially for those with better brands. Although they can be properly recognized and used by the system without drivers, the installation of drivers can add some extra functions and improve stability and performance of the system.
You May Also Like:
Parameters, Identification and Applications of Zener Diode
Parameters, Classifications and Applications of Light Emitting Diode(LED)
Features, Developemnt Trends and Disadvantages of Wireless Power Transfer
Ordering & Quality
Photo | Mfr. Part # | Company | Description | Package | Qty | MPC5123YVY400B | Company:NXP | Remark:IC MCU 32BIT 516FPBGA | Package:516-BBGA |
MPC5123YVY400B Datasheet |
In Stock:104 Inquiry |
Inquiry | MC9S08GT16CFBE | Company:NXP / Freescale | Remark:IC MCU 8BIT 16KB FLASH 44QFP | Package:44-QFP |
MC9S08GT16CFBE Datasheet |
In Stock:16320 Inquiry |
Inquiry | MC68360ZQ25L | Company:Freescale Semiconductor - NXP | Remark:IC MPU M683XX 25MHZ 357BGA | Package:BGA |
MC68360ZQ25L Datasheet |
In Stock:811 Inquiry |
Inquiry | MC14600P | Company:Freescale Semiconductor - NXP | Remark:IC ALARM GENERAL MONO 16-DIP | Package:16-DIP (0.300", 7.62mm) |
MC14600P Datasheet |
In Stock:1177 Inquiry |
Inquiry | MC9S08SH8CSC | Company:Freescale Semiconductor - NXP | Remark:IC MCU 8BIT 8KB FLASH 8SOIC | Package:8-SOIC (0.154", 3.90mm Width) |
MC9S08SH8CSC Datasheet |
In Stock:11009 Inquiry |
Inquiry | PIC12F675-E/MF | Company:Microchip | Remark:IC MCU 8BIT 1.75KB FLASH 8DFNS | Package:8-VDFN Exposed Pad |
PIC12F675-E/MF Datasheet |
In Stock:94 Inquiry |
Inquiry | ADSP-21065LKSZ-264 | Company:Analog Devices | Remark:IC DSP CONTROLL 544KBIT 208-MQFP | Package:QFP |
ADSP-21065LKSZ-264 Datasheet |
In Stock:992 Inquiry |
Inquiry | MPC8360ECZUAJDGA | Company:Freescale Semiconductor - NXP | Remark:IC MPU MPC83XX 533MHZ 740TBGA | Package:740-LBGA |
MPC8360ECZUAJDGA Datasheet |
In Stock:73 Inquiry |
Inquiry | IS42S32400F-7TL | Company:ISSI | Remark:IC SDRAM 128M 143MHZ 86TSOP | Package:86-TFSOP (0.400", 10.16mm Width) |
IS42S32400F-7TL Datasheet |
In Stock:1104 Inquiry |
Inquiry | MC34905CS5EK | Company:NXP / Freescale | Remark:IC SBC HIGH SPEED CAN 5V 32SOIC | Package:32-BSSOP (0.295", 7.50mm Width) Exposed Pad |
MC34905CS5EK Datasheet |
In Stock:88 Inquiry |
Inquiry |