eli5 what are Computer “Drivers”

819 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

Drivers are a dictionary that translates your hardware’s language into your operating systems language. Simple as that.

Anonymous 0 Comments

Every operating system is different, even in very small ways. The driver for a graphics card is the program that allows the graphics card, or any other non standard device added to a computer, to ‘speak’ proficiency with the operating system.

Anonymous 0 Comments

At the very simplest, think of a computer driver like it’s namesake – driver of a taxi. You (the operating system) know exactly what you want to do and where you want to go so you tell the driver. The car may be automatic, may be stick, may be pedal driven, but you don’t need to know. You and the driver can talk to each other and the driver knows _how_ to take what you’ve asked for and can drive the taxi for you.

You can jump in any form of taxi, rickshaw, horse driven fancy carriage – yell ‘follow that car’ and still find yourself masterfully following that suspect despite having no idea yourself or which pedal to push, or mystical horse command

Anonymous 0 Comments

I like to think that software development is somewhat analogous to building a home.

First off, you make the blueprints of your house (software dev writes the code).

Then, you lay the foundation the house is built on (ops teams creates servers somewhere, most likely on the cloud, but it doesn’t really matter).

Next up, you actually build the house to the specs in the blueprints (deployments team deploys that code to those servers).

For this analogy, a driver acts as the construction company. The blueprints just specify the house you’re building, they don’t know where to get raw materials, or how to nail 2x4s together. Just like angry birds doesn’t know how to download itself onto a phone, it just knows how to let the user play angry birds. A driver (or installer or wizard or what have you) makes sure the code ends up where its supposed to, then screws off because its not needed once everything is fully deployed.

Now that I went through that grandiose analogy about software development. Hardware drivers behave rather differently, but they touch on the idea that code only knows what it does and does not have a clue how to actually operate itself. They more or less act as a middleman or a specialist. You don’t expect a (non-roomba) vacuum to be able to drive itself around your house, you wouldn’t expect a printer to run itself. You just hand the responsibility off to another program rather than a person.

When the user tells their computer they want to print out a file, the computer tells the driver “print this file”, and the driver figures out what pixels to put black ink in and also checks to see if there is enough toner, paper, ink etc. to follow through with the act of printing.

You might be asking, *why* is that layer of separation wanted/needed? And the answer to that is that every printer behaves differently. Hell, every operating system behaves differently, even between minor versions of the same OS. Rather than making one printer that intrinsically knows how to act in every single printer/OS combination that exists or ever could exist, it makes sense to just hire a specialist that handles that specific printer/OS combo. This also means that you when new operating systems or printers come out, you can just make a new driver and tell your user to install it and there you go, works like a charm.

Anonymous 0 Comments

A good example is a printer. Different printers have different widths, so your computer OS can’t just say “turn the motor which moves the print head 50 clicks” because those instructions are printer specific and would make different pictures. So your computer tells the driver, “tell your printer to go half way across the page and put ink there” and then the driver says, “ok for my kind of printer, half way across is 50 clicks counter clockwise “

Anonymous 0 Comments

Plugging new hardware into a computer is like someone landing in a foreign country not knowing a single word of the local language. You can try communicating, but everyone only hears gibberish and you get nowhere.

A computer driver is like a friend who comes with you and is from the country so they can translate everything back and forth.

Anonymous 0 Comments

Imagine if I handed you a control panel with ten buttons on it. You have no clue what these buttons do, they could control a door, activate an alarm, turn on a light, start an engine, anything. Could be for a machine, a robot, a car; anything really – but the control panel would look all the same to you. The driver is to an operating system, like a manual would be to this control panel. It gives instructions on how to control and interact with the features of the device, whether it controls a robot arm or a car or a factory machine, or in driver terms whether it controls a sound card or a video card or a network card.

Anonymous 0 Comments

Your computer might know how to talk to some devices, but it doesn’t know how to talk to all of them.

A driver is a piece of system-level software that is basically telling the system what that newly-added feature does and acts as its translator. A printer driver says “Hey, I’ve got this printer here. He speaks a little funny. Let me handle translation. Talk to me, and I’ll convey the message to him.”

Anonymous 0 Comments

When you want to get from one place to another, you can call a limo.

The limo is a vehicle, but there are lots of different sizes, styles, engines etc. Some might have a standard transmission, some might have an automatic transmission. Some might have a gas engine, or a Diesel engine. Or might be hybrid. But you don’t care. You just want to get from one place to another.

The limo driver takes your instructions, knows how to get from A to B, and controls the specific vehicle to get you there.

In computers, you have pieces of hardware such as a disk drive (like a vehicle), and you have features like saving and opening files (like going from A to B). A software driver takes the feature and implements it on the specific hardware (like driving the limo). It’s literally in the name.

Anonymous 0 Comments

Remember the scene in the matrix where Trinity gets into the helicopter and says “I need the info on a something something (helicopter type)!” And then it downloads into her brain and suddenly she knows what buttons there are and where they are and the specifics of that particular type of helicopter? That is essentially what drivers are. For a given piece of hardware, whether it be a printer or a usb stick or whatever, it tells the computer what all that device can do and where the (virtual) “button” is to do it.