In the context of free and open-source software, a binary blob is a closed-source binary-only piece of software without publicly available source code. The term usually refers to a closed-source kernel module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.
When computer hardware vendors provide complete technical documentation for their products, operating system developers are able to write hardware device drivers to be included in the operating system kernels. However, some vendors, such as Nvidia, do not provide complete documentation for some of their products and instead provide binary-only drivers (binary blobs); this practice is most common for accelerated graphics drivers, networking devices, and hardware RAID controllers.
Some projects try to create a free operating system, and will not accept binary blobs if they cannot get documentation for hardware or source code for device drivers; such projects include Trisquel, Parabola and LibreCMC. Other projects make a distinction between binary-only software and binary-only firmware, and hence distribute firmware blobs; such projects include NetBSD, FreeBSD, DragonFly BSD, and some Linux distributions.