Computer device drivers allow your operating system to tell the hardware in your computer and the peripherals you’ve attached what to do.
Like apps and operating systems, these hardware drivers can consist of open 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? And how do these differences affect you?
What is a hardware driver?
Hardware drivers exist to allow your computer’s software to communicate with the hardware. Sometimes they are built into your computer’s operating system. In other cases, you will have to download and install the drivers yourself.
Many drivers for Microsoft Windows are available for download. Older PC devices often came with CD-ROMs containing the drivers to make your hardware work. Hardware means anything from a USB microphone to a graphics card for gaming.
On Linux, drivers are often built into the operating system, which has its advantages and disadvantages. Most of the time, when you connect a new device, it just works. This is especially true for older hardware that has had time to find its way into the Linux kernel. But sometimes, especially with newer devices, your computer doesn’t recognize the new device and Linux-compatible drivers are less likely to be available online for download.
Why many drivers are proprietary
A computer component or external device may seem like a primarily physical product, but the software that powers the device often makes one product more compelling than another. Many companies consider the code that powers this software as their competitive advantage over other companies.
Instead of making this code publicly available, they only allow people outside of the company or specific contractors to view 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 the computer hardware space. NVIDIA has long had an edge over competitors and is less inclined to provide open-source hardware drivers. The code in these drivers could allow 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
Here, too, it is important 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 drivers must be certified by Microsoft, and since Windows is proprietary, these drivers must be too.
Perhaps less surprisingly, Apple also certifies drivers for 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. However, if you’re installing a driver, it’s likely proprietary.
Google’s Chrome OS is a small exception here. Chrome OS is technically proprietary, but it’s built on an open-source foundation. Because Chrome OS uses the Linux kernel, it uses both the open-source drivers and closed binary blobs that come 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 meant for.
What is the need for open drivers?
This means that the question between open-source and closed-source drivers has major implications for Linux users. Here the preference is the opposite of the other desktop operating systems. No company develops and distributes Linux, so there is no company that certifies drivers. Linux development is distributed among people around the world, some working as volunteers and others as employees for different companies. It works better for everyone when the source code for drivers is available.
The benefits of open source drivers mirror many of the benefits of open source software in general.
- Easier software collaboration: Lots of people can develop software together if there isn’t a company acting as the gatekeeper of the source code.
- Software you can trust: Without access to the source code, you really don’t know what a program is doing.
- More privacy: It’s rare for open source software to track what you do, as it’s easy for someone to redistribute another copy of the software once the tracking has been removed.
- Software Longevity: When a company loses interest in a program or device, they often stop selling it. Open source code allows anyone else to continue making the software available.
When a driver is open source on Linux, there is a better chance that everything will just work. Your hardware will also likely have fewer bugs.
For example, Linux users with Intel integrated graphics can expect smoother desktop animations than with an NVIDIA graphics card, since Linux graphics developers don’t have access to the inner workings of the NVIDIA chip to troubleshoot all bugs. Quirks can appear in unexpected places, such as when a laptop is closed to put it to sleep. As a result, Linux users who want a smoother experience but also need a powerful graphics card may prefer AMD, a company that offers more open-source drivers.
If Linux were more widely used on desktops, you would probably see more pressure on companies to release open drivers. On Linux, open-source code is more of a competitive advantage, a feature that many users look at when making purchasing decisions. But since Linux users make up such a small percentage of all computer users, the question of whether to make a driver open source hardly ever arises. On Windows and macOS, an open source driver is not 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. Whether your drivers are open or closed on Chrome OS, this knowledge is largely unknown and irrelevant to your experience.
But if you use Linux, then this question is important. Unless you need the extra performance that a proprietary driver can provide, e.g. For gaming, for example, hardware with open-source drivers often offers a better experience. And such drivers better fit the broader ethos and functionality that sets Linux apart from other operating systems.