eli5 what are Computer “Drivers”

805 views

After painstakingly installing printer drivers for a thermal printer at work I realized I still don’t truly understand what I was installing. (Bonus points if you can cover video card drivers too cause idk what drivers are In that sense either)

In: 2515

42 Answers

Anonymous 0 Comments

Imagine it like different parts of your PC using different languages.

Drivers are basically what translate your OS talk into Hardware Talk. This is highly specific for each hardware, thus everything having their own drivers.

They are needed cause OS talk is way easier than Hardware Talk.

Anonymous 0 Comments

Drivers are pieces of software which are loaded into the Kernel, the highly privileged part of the operating system which controls the running of all fundamental processes – memory management, hardware interfacing, process scheduling etc.

Generally speaking a driver provides an interface to some piece of hardware, though this isn’t always the case.

In the case of your printer it’s job is to interface with the printer and maybe talk to it in some specific way the printer manufacturer designed (but the core Kernel doesn’t know how to do, as theres too many proprietary bits of hardware out there). It will also interface with the OS to let it know a particular piece of hardware is available – in this case letting everyone know a Printer is available for use.

It’s final job is to allow any configuration from “userland” (the non-privileged part of the OS, distinct from the Kernel – it’s where all of your programs run, Excel, Browsers etc.) to the driver. For instance maybe allowing your driver configuration tool to specify a paper size etc.

The above is all true for Graphics drivers too. They control the graphics card hardware and provide an interface to do things like pass texture data etc.

Anonymous 0 Comments

it’s like a printer operating manual for the operating system of your computer

let’s say you want to turn on the tv

you can just hook up the cables, but you also have to know
how to use it to watch programs, record, change channels, volume, adjust color, all that good stuff

Anonymous 0 Comments

Drivers are in a way a program that translates from what the computer says to whet the printer, graphics card, mouse and so on understands.

To make things easy, does windows say what it wants in some standard way. Printers and the other gear on the other hand are build differently and have all sorts of features, so the producer of the printer makes a program that reads what windows want to happen, and the driver does now take all these commands, and translate it to commands that fits exactly that printer, mouse and so on.

Anonymous 0 Comments

“Drivers” are translator programs for operating systems.

When the computer wants to send instructions of what to draw on the screen, the instructions come in the form the operating systems knows. A “driver” would then turn the instructions into detailed steps that the screen knows how to follow.

Imagine the computer wants to draw a red dot in the middle of the screen. It will say to the video driver “make the dot in the middle of the screen red.” The video driver will take that instruction and make calculations:

1. Take the width of the screen in dots (called pixels) and divide by two to find the middle.
2. Take the height of the screen in pixels and divide by two to find the middle.
3. Take these two numbers, and the send a signal to the screen to turn that pixel red.

Other drivers work in similar fashion. The operating system can say to the driver *what* it wants to happen. The driver can translate that for the specific hardware into exactly *how* that should be done.

Note: This is explanation is for illustration, it’s more complicated than that, but it’s how I’d explain it to a five year-old. 🙂

Anonymous 0 Comments

The driver is simply the proprietary code that enables, unlocks or powers on all the extended features of the device. Windows over the years has absorbed quite a few low level drivers for various chipsets – the sound chips on motherboards for example. Few of us bother getting a dedicated sound card anymore unless we’re doing some hardcore MIDI or sound engineering work and we need more than an aux in/out channel. Turns out that a lot of these sound chips that get stuck on motherboards are made by just a handful of companies. Realtek example. Those guys don’t make full boards, their bread and butter is just making sound and ethernet chips that companies like MSI or ASUS use on their motherboards.

ANyways, Microsoft has absorbed the drivers for a lot of these more commonly used chipsets and you’ll probably get some pretty ok performance of that device out of the box (or out of the Windows box). But to really turn it on you need the chip vendor’s driver. For example, WIndows supports almost every nVidia and ATI/AMD graphics chip known to man with some bog standard VGA drivers – that’s what Windows uses when it first installs. And it’ll do pretty good. But to turn on all the advanced whizbang features of your GPU, you want the driver from nVidia or AMD – that will unlock all the CUDA cores, the PHysX simulation, the advanced ultra mip-mapping three terabyte tesselation RTX realtime lighting whatever.

For more esoteric devices that Windows _wont_ have a driver for out of the box, you NEED the vendor driver. Lets say for an advanced data acquisition card – all USB or PCIe devices will physically respond to your computer asking “hey, what devices are out there?”, then “hey DAC card, what device thing are you?” and your device will respond with some common information. For a USB device this will be a unique vendor ID and a device ID – then Windows UPdate uses that to go off and find the driver from the Windows Qualified Drivers database; otherwise it will sit there in Device Manager as a big yellow question mark. Windows can detect it, but it doesn’t know how to make it work.

Same thing with printers – Windows will have some standard printer drivers that will be able to spit basic print jobs to most printers. But to do advance things like scanning, faxing, printing in colour with CYMK colour balance (I dunno what else is important for a thermal printer), you gotta have the vendor driver – because the device specific commands for _that_ printer will be different from other models of even the same vendor.

A completely weird analogy I just thought up. You’re in a foreign land. Lets say they speak German. You speak English – there’s some words in common, and through a _very_ limited vocabulary and some gesturing and pointing you can communicate. But to have a meaningful conversation with all the nuance and details, you both gotta be speaking the same language. A device driver is the operating system to hardware translator.

Anonymous 0 Comments

Every machine or component you connect to you computer (be it internally or externally) has its own set of functions. For example, your printer might have functions like “advance the paper by X units” or “move the thermal head to position X” or “turn on heat for X seconds”.

Hardware functions are typically quite low-level, while the things you want to achieve are usually more high-level. For example, you don’t want to tell your printer manually to move its head or to turn on the heat. You want to put in a file that it then prints correctly.

A driver is a program that translates between the low-level communication protocol the hardware uses and the higher-level communication you would like to use.

Regarding video card drivers: When rendering stuff, you generally need a lot of mathematical operations, like matrix multiplication for example. That is what a video card does at the low level. But at the higher level, you want to tell it things like “draw me a triangle between points X, Y, and Z” or “fill my polygon with this texture” or “translate this 3d object” — the logical stuff you need to render 3d scenes.

Anonymous 0 Comments

Let’s say your computer wants to find a file. If you have an old HDD with magnetic platters, that involves moving the reading arm to the right platter, rotating it the right angle, and extending to the right distance from the center. If it’s a CD, you just need angle and distance. If it’s flash or SSD, it’s another process entirely.

Point is, the specific, mechanical instructions needed to find the file are going to be different for different kinds of hardware.

But your computer doesn’t have time for that. It just wants to “find file x” and then find the file.

That’s where the driver comes in. The driver takes common, well known instructions (such as “find file x”) and converts those into the hardware specific instructions necessary to carry out that task. This way, the hardware can carry out the instructions the way it wants, without regard for the operating system, and the operating system can worry about tasks in a more abstract sense without worrying about the specific hardware architecture.

Anonymous 0 Comments

Let’s say you have a classroom with 20 students. Each student speaks a different language. It’s difficult to tell a teacher how to instruct each student in their native language. Instead, you give each student a translator, and the translators can take what the teacher says and make it something the student understands.

Teacher = OS
Student = peripheral (disk, printer, GPU, etc.)
Driver = Translator

Anonymous 0 Comments

Drivers are software that enable hardware to talk to the rest of the software on your computer so you can use that hardware whether it is to print using a printer, display graphics generated by a video card, have a Wi-Fi connection using a Wi-Fi adapter, or another function provided by a piece of hardware.