Computer device drivers allow your operating system to tell the hardware inside your computer and the peripherals you have plugged in what to do.
Like applications and operating systems, these hardware drivers may consist of freely 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? Also, 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. Other times you 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 needed to run your hardware. Hardware means everything from a USB microphone to a graphics card for gaming.
In Linux, drivers are often built into the operating system, with its pros and cons. Most of the time when you plug in a new device, it just works. This is especially the case with older hardware that has had time to work 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 Pilots Are Proprietary
A computer component or external device may seem like a mostly physical product, but the software that powers the device often makes one product more appealing than another. Many companies view the code that powers this software as their competitive advantage over other companies.
Instead of making this code publicly available, they only allow those outside 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 when it comes to computer hardware. NVIDIA has long had an advantage over its rivals and is less inclined to provide open source hardware drivers. The code contained in these pilots could arguably allow an existing competitor to catch up or facilitate the entry of a new company into the field without developing code from scratch.
Proprietary operating systems have proprietary drivers
It is also necessary 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 the drivers must be certified by Microsoft, and since Windows is proprietary, those 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 system CUPS to manage printers. But if you install a driver, it’s probably proprietary.
Google’s Chrome OS is a bit of an exception here. Chrome OS is technically proprietary, but it’s built on an open source foundation. Since Chrome OS uses the Linux kernel, it uses both the open source drivers and the closed binary blobs that come with the kernel. But if you need to run additional hardware that isn’t supported by default, that’s not really what Chrome OS is for.
What is the need for open pilots?
This means that the issue of open source versus open source drivers has a big impact on Linux users. Here, the preference is the opposite of other desktop operating systems. No company develops and ships Linux, so there is no single company to certify drivers. Linux development is widespread among people all over the world, with some working as volunteers and others as employees for various companies. It works best for everyone when the driver source code is available.
The benefits of open source drivers mirror many of the benefits of open source software in general.
- Simplified software collaboration: Many people can develop software together when there is no single company that controls the source code.
- Software you can trust: Without access to source code, you don’t actually know what a program does.
- Greater confidentiality: It’s rare for open source software to track what you do, because it’s easy for someone to redistribute another copy of the software without the tracking.
- Software longevity: When a company loses interest in a program or device, it often stops distributing it. The open source code allows anyone else to continue to make the software available.
On Linux, when a driver is open source, there’s a better chance that everything just works. Your hardware will also likely contain fewer bugs.
For example, Linux users can expect smoother desktop animations using Intel integrated graphics than with an NVIDIA graphics card, since Linux graphics developers do not have access to the internal workings of the NVIDIA chip to solve all bugs. Quirks can appear in unexpected places, such as when shutting down a laptop to put it to sleep. Therefore, Linux users who want a smoother experience but still 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 desktop computers, you would probably see more pressure on companies to release open drivers. In Linux, open source code is more of a competitive advantage, a feature that many users give weight to when making purchasing decisions. But with Linux users representing such a small percentage of all computer users, the question of whether to make a driver open source almost never arises. On Windows and macOS, an open source driver will not be certified.
Open Source or Proprietary: Which to Use?
On most computers, you have no choice. On Windows and macOS, your drivers are proprietary. On Chrome OS, whether your drivers are open or closed, this knowledge is largely unknown and irrelevant to your experience.
But if you are using Linux, this question is important. Unless you need the extra horsepower that a proprietary driver can provide, such as with games, hardware with open source drivers often provides a better experience. And these drivers better align with the larger philosophy and features that set Linux apart from other operating systems.