Computer device drivers are what enable your operating system to tell the hardware inside your computer and the peripherals that you’ve plugged in what to do.
Like apps and operating systems, these hardware drivers can consist of openly available source code hidden behind binary blogs and a lengthy end-user license agreement.
So, what are the differences between closed and open-source hardware drivers? Furthermore, how do these differences impact you?
What Is a Hardware Driver?
Hardware drivers exist to enable your computer’s software to communicate with the hardware. Sometimes they come integrated with your computer’s operating system. Other times you need to download and install the drivers yourself.
Many drivers for Microsoft Windows are available for download. Older PC devices often came with CD-ROMs that included the drivers to make your hardware work. Hardware means anything from a USB microphone to a graphics card for gaming.
On Linux, drivers often come baked into the operating system, which comes with its pros and cons. Most of the time, when you plug in a new device, it simply works. This is especially the case with older hardware that has had time to make its way into the Linux kernel. But sometimes, especially with newer devices, your computer won’t recognize the new device, and Linux-compatible drivers are less likely to be available for download online.
Why Many Drivers Are Proprietary
A computer component or external device may seem like a primarily physical product, but the software powering the device often makes one product more compelling than another. Many businesses view the code powering this software as their competitive advantage over other companies.
Instead of making this code publicly available, they only allow those without the company or certain contractors to see the code. The code is considered proprietary information. The resulting software is proprietary software, also known as closed source software.
The competition between AMD and NVIDIA is one of the fiercest in computer hardware. NVIDIA has long had an advantage over rivals and is less inclined to provide open-source hardware drivers. The code within these drivers could arguably enable an existing competitor to catch up or make it easier for a new company to enter the field without developing code from scratch.
Proprietary Operating Systems Have Proprietary Drivers
There’s also a need here to address the elephant in the room. Microsoft Windows is the most widely used desktop operating system in the world. Windows consists of closed source code.
Hardware drivers integrate with the operating system at such a low level. Since Windows 8, Windows computers can only run signed drivers. This means that drivers must be certified by Microsoft, and since Windows is proprietary, these drivers must be too.
Perhaps less surprisingly, Apple also certifies drivers on macOS. But at the kernel level, macOS is based on various open-source technologies. macOS also uses the open-source CUPS system for managing printers. But if you’re installing a driver, it’s likely proprietary.
Google’s Chrome OS is a bit of an exception here. Chrome OS is technically proprietary, but it’s built on top of an open-source foundation. Since Chrome OS uses the Linux kernel, it uses both the open-source drivers and closed binary blobs that ship with the kernel. But if you need to run additional hardware that isn’t supported out of the box, that’s not really what Chrome OS is intended for.
What’s the Need for Open Drivers?
This means the question of open source vs closed source drivers largely impacts Linux users. Here the preference is the opposite of the other desktop OSes. No one company develops and ships Linux, so there’s no one company to certify drivers. Linux development is spread out among people all over the globe, some working as volunteers and others as employees for various companies. It works better for everyone when the source code for drivers is available.
The advantages of open-source drivers mirror many of the advantages of open-source software in general.
- Easier Software Collaboration: Many people can develop software together when there isn’t one company serving as gatekeeper of the source code.
- Software You Can Trust: Without access to the source code, you don’t actually know what a program is doing.
- Greater Privacy: It’s rare for open source software to track what you are doing since it’s easy for someone to redistribute another copy of the software with the tracking removed.
- Software Longevity: When a company loses interest in a program or device, they often stop distributing them. Open source code enables anyone else to continue making the software available.
On Linux, when a driver is open source, there’s a better chance everything will simply work. Your hardware will also likely contain fewer bugs.
For example, Linux users can expect smoother desktop animations using Intel-integrated graphics than an NVIDIA graphics card, because Linux graphics developers don’t have access to the inner workings of the NVIDIA chip to work out all the bugs. Quirks can appear in unexpected places, such as when closing a laptop to put it to sleep. As a result, Linux users who want a smoother experience yet also need a powerful graphics card may end up preferring AMD, a company that provides more open source drivers.
If Linux were more widely-used on desktops, you would likely see greater pressure on companies to release open drivers. On Linux, open-source code is more of a competitive advantage, a feature that many users give weight to when making their purchasing decisions. But with Linux users representing such a tiny percentage of overall computer users, the question of whether to make a driver open source hardly ever comes up. On Windows and macOS, an open-source driver won’t be certified.
Open-Source vs. Proprietary: Which Should You Use?
On most computers, you don’t have a choice. On Windows and macOS, your drivers are proprietary. On Chrome OS, whether your drivers are open or closed, that knowledge is largely unknown and irrelevant to your experience.
But if you’re using Linux, then this question matters. Unless you need the extra power that a proprietary driver can provide, such as for gaming, hardware with open source drivers often provides a better experience. And such drivers better align with the broader ethos and functionality that distinguishes Linux from other OSes.