The Role of Binary Drivers in a Free OS
There’s a lot of controversy over whether a Free Software operating system should include binary-only drivers. Arguments on both sides range from the philosophical to the practical, all of which are worth examining.
Before we look at whether there should be binary drivers in a free OS, it’s worth looking at what exists at the moment. The most hard-line platform in this area is OpenBSD, which flatly refuses to allow binary blobs in kernelspace, citing reliability and security concerns. FreeBSD is a different matter; it includes some binary drivers for things like RAID chipsets in the base system.
The situation in the Linux world is even more interesting. The Linux kernel doesn’t allow binary drivers at all. By changing the kernel APIs and ABIs periodically, the developers actively discourage anyone from writing a driver—open or closed—that’s maintained outside the main tree.
But few people build Linux systems themselves; most use a distribution. Most Linux distributions don’t use the stock kernel—they use their own in-house version. This version usually isn’t different enough from the main trunk to be considered a fork, but has some patches installed. The distribution may also bundle some extra drivers. Many binary drivers have licenses that prohibit redistribution, but it’s not uncommon for distributions—even LiveCDs such as Knoppix—to include scripts that automatically download and install drivers after boot.
Binary drivers are a fact of life for a lot of Free Software users. Does it matter?