A driver or controller device is the software that communicates peripherals with the operating system. For example, a sound card can emit an audio signal or take audio from the outside, a video card is capable of sending a video signal to a monitor to graph the desktop of a system, a mouse is capable of moving an arrow. virtual on the screen, etc.
In other words, drivers or controllers work by abstracting from hardware, from tangible equipment, translating them into an interpretation through software. In this way, in the case of sound cards we can see a Mixer (or mixer) by software that will allow us regulate the different inputs and outputs: increase or decrease the general volume, capture audio through a microphone or through the line, adjust the stereo pan (left, right), activate or deactivate a digital or analog output, etc.
In the case of a video card, we could regulate the resolution in which the desktop of an operating system is displayed, in number of pixels: for example, 1024 x 768 (horizontal x vertical), 1200 x 800, 800 x 600 and so on.
In the case of the mouse or mouse, we can regulate the speed with which the pointer (or arrow) moves, the acceleration, exchange the left and right buttons, etc.
If there is no driver, these peripherals they wouldn't work at allEven the existence of the controller has a crucial impact on the possibility that we will have on managing them: limited controllers will cause us to access only a limited group of hardware functionalities. This is the case of drivers in development, which are not yet finished and for this reason they allow us to do only a number of things that could be done.
In systems such as Windows or Mac, it is more common for the hardware manufacturer to distribute on CD / DVD, outside or inside their proprietary operating systems, certified drivers or not in relation to the companies that produce the software: Microsoft or Apple. In the case of GNU / Linux or BSD, only rarely do companies release drivers: sometimes they are proprietary, sometimes they are free. Firms like HP usually launch drivers for peripherals such as Printers, achieving full compatibility.
When a company does not release its drivers, many times hackers (computer experts who use ingenuity to solve a problem) perform your own drivers collaboratively by various methods, such as reverse engineering. This involves studying how the peripheral communicates with the rest of the computer system, decoding its forms and translating the analysis into a driver that enables us to use certain hardware. Sometimes the result achieved exceeds the quality and functionality of proprietary drivers. On the other hand, in GNU / Linux, BSD and other free systems, the drivers are already incorporated into the system, which is an advantage for the end user: they will not have to look for them on the Internet or do anything strange.
In certain cases, such as WiFi (wireless) cards, the GNU / Linux user can be seen "obliged"to use Windows drivers through ndiswrapper software: only some chips support free drivers, such as chips Atheros, and the Realtek 818x (There are excellent USB devices that work with free software without more need than to connect them to the PC).
Although there are countless web pages that offer drivers in binary format (without source code), the user should be careful when installing these softwares since they can contain Trojan viruses inside or virtually anything.