What is a driver, from a computer standpoint? Ex: Why does a printer need a specific driver? Is there no standard?

361 views

Last night, I tried to set up an older printer to a new laptop, but I kept running into driver issues. I’ve always dealt with that, but never understood what it was and why it was necessary.

In: 13

12 Answers

Anonymous 0 Comments

The driver is an interface layer. Each device has it’s own internal structures and commands. The driver is the piece of software that transforms what the computer wants the device to do into commands that the device can understand. The operating system has a standard set of commands that it needs the device to understand which is the interface that the driver is required to match, so that is standardized, as are the formats used for data between the devices.

Imagine it like this: Your printer is a factory in China and your computer is a design company in the USA. In order to get what you want from the factory in China, you need to have a translator translate your request for work into the Chinese, the language that the factory understands. If the factory was located in Germany, you would need a driver to translate it into German instead. However, that blueprints for the thing you want built wouldn’t need change because that is handled using open standards that everyone has agreed to use. If we extend the metaphor a little bit, we can also view the USB standard as a post office, which using a standard addressing and data format to physically transport data and commands from place to place.

Now, the reason why drivers are such as issue for older hardware is that drivers need to be specific to the hardware in question and it needs to match the interface used by the operating system. Often, devices are effectively abandoned by their manufacturer, and they don’t provide drivers that are up to date with the current operating systems for their older hardware as a cost saving measure. Drivers will also have bugs like all other pieces of software and maintaining them just doesn’t make financial sense at some point.

Anonymous 0 Comments

> What is a driver, from a computer standpoint?

it’s a piece of software that talks to a specific subset of hardware.

> Why does a printer need a specific driver?

because the electronics used to build it differs from model to model, and controlling one piece of silicone is done differently than another one.

> Is there no standard?

there are standards – PostScript, PCL, raw text and probably others, but they are higher level than talking directly to an IC that sits inside your printer.

Anonymous 0 Comments

There are standards for a printer like PS (postscript) and if you can have a printer that understands it and you do not need a specific driver. There likely is one but it is there so you can get the specifics parameter that is relevant for the print and to control other features if there are any. There is a PPD (Postscript Printer Description) standard tht descibe the printer, so you can use it and a generic driver for the printer

A PDF file is based on Postscript and in some way the result of you printing a document and postscript code of it is generated. You then store the data in a file so it looks the same on all devices

The problem if you do it that way you need to have the process capability to interpret the postscript in the printer. Because most consumer printer is cheap and manufacturers like to squeeze out any available money they can from them they do it another way. They put as little electronics in the printer as possible. They put the software the generate the control instruction on the computer instead. That is a cheaper way to do it but worse for the user.

If you look at a more expensive printer intended for usage in offices you find lots of printers that understand PS.

I use an “HP Universal Printing PCL 6” driver with an old HP printer from the 90s build for office use. PCL is HP own standard language for printers, it is similar to PS. The printer understands both I just picked PCL

PS has existed in print since 1982 the latest PostScript 3 is from 1997. PCL is from 1984 and the latest PCL 6 is from 1995. So I could use the same drive with any printer regardless of when it was made. The problem with old printers is like their ability to understand TCP/IP or even network in general. There are or at least were printer servers that were just small device with a network interface and the wired interface to connect to the printer.

So there are defacto standards, the problem is they increase the cost of printers a bit so you do not see them in cheap consumer printers. High volume printer for offices generally support the,

Anonymous 0 Comments

Some drivers are standardized. There’s standard keyboard drivers, so you don’t have to install a new keyboard and mouse drivers, unless they have special functions.

Unfortunately they didn’t achieve that with printers. It’s harder then with keyboards, just because the number of possibilities is much larger. Yes, there’s ways it could be done, but no one ever standardized on one. There’s a lot of features that you can and can’t see that’s different on how a printer functions.

Examples of things is how you pass fonts to the printer, and how you pass around the shape of images to make them come out crisp. Then there’s features in the printer, such as reporting where the paper is jammed, which ink tank is low, or selecting the right paper tray if there’s multiple trays.

Anonymous 0 Comments

An apt comparison would be to vehicle drivers. Just because a human driver can drive a car doesn’t mean that the same driver can drive a tank or an 18-wheeler or an airplane or a tractor. So the operator (the OS) can instruct the driver to make a series of deliveries (prints) but it’s up to the driver to operate the vehicle (printer) in the specific manner to accomplish this task.

Now you can extrapolate this example further being that different OS’s (Like Apple vs Windows) speak different languages and different versions of OS’s (Like Windows XP versus Windows 11) is like working for different companies – each company has it’s own rules and security procedures and specific lingo used.

So plugging an old printer into a new laptop is like trying to get 18 year old to drive somewhere he doesn’t know without using GPS. You need to use an older driver that can still navigate using physical maps. But the older driver doesn’t know what the 18 year dispatcher is saying. So you need to get the dispatcher to use a compatibility mode so that he can make the instructions clear to the older driver. Sometimes this works and in some cases it doesn’t. If it doesn’t then you’ve got to get an update for the older driver.

You can also try a generic driver, if available, but then you lose out on your more advanced features like printing in color or on different paper sizes. So that’s like trying to get a normal truck driver to operate a dump truck – they might be able to maneuver the truck but they won’t know how to use the dumper part.

Anonymous 0 Comments

The operating system uses the driver to operate the printer the same way you use a steering wheel and pedals to operate a car. Under the hood different cars could work very differently, but the interface is the same for everybody. The same is true for computer hardware. Through the driver, the computer tells the printer what to do, but not how to do it.

Anonymous 0 Comments

The operating system on your computer can’t be pre-built to know every piece of hardware you could attach to it and how that hardware works. There’s just too many gadgets out there. The solution is to have drivers, which are bits of code that act as an interpreter between the operating system and the hardware. It allows the operating system to know how to send the correct signals to get the hardware to work in the intended way.

“But why do I need a specific driver for a specific printer?”

General printer drivers exist and can sometimes be used. The problem is a general driver can’t account for all the differences between every printer made, and will often mess up if you’re using a printer with any unusual features. Similarly, if you were to learn some basic, general-purpose Spanish, it would work a lot of the time, but you’d have trouble dealing with country specific slang, or technical jargon, or pidgin or creole versions of Spanish, so you might want to get a translator that knows that specific area of the language you need to deal with.

Anonymous 0 Comments

Yes, there is a standard. This is the interface between software that wants to print and the printer driver. All printer drivers support the same standard interface, to the degree the printer can do all those things (a color printer driver can’t make a B/W printer print in color).

But, in order to make varied products to optimally serve all the varied uses for printers, printer companies need to implement a conversion from the standard printer driver interface to the data their printer actually uses. Every printer company uses different inks and mechanisms, so it needs different conversions. Even within a printer company the laser printers work very differently from the inkjet printers (and don’t even get into the oddball label printers and the like).

Some printer companies make a “universal driver”, a giant program you install which simply contains all the conversions with a big “IF printer model 1 THEN … ELSE IF printer model 2 THEN …” switch statement at the top. This is easy but if they make 100 different models it takes up 100 times as much disk space (and potentially memory). Other printer companies make tiny drivers, one for each printer model, and if you install the wrong ones you can’t print. It’s a feature, not a bug.

Anonymous 0 Comments

You can imagine it like a translator between people. Your printer is a person speaking Spanish, the pc is a person speaking Japanese and the driver is the translator person, so the 2 can talk and understand each other. So when you get a new pc it basically changed its language from Japanese to, let’s say, German and now the printer manufacturer updates the driver so it speaks also that, so that your old printer can still communicate with the newer pc.

Anonymous 0 Comments

[removed]