Binary blob

from Wikipedia, the free encyclopedia

A binary blob is - in the context of free software - a binary large object (BLOB) that contains proprietary software as binary code ( machine code ).

Disambiguation

The term mostly refers to closed-source kernel modules that are loaded into the kernel of an open-source operating system . It is also used to refer to things outside of the kernel such as: B. firmware images, microcode updates or programs that are executed in user space. The term blob was first mentioned in connection with database management systems, where it is used to denote a collection of binary data that is stored in a single entity . Blob is in the case of B inary L arge Whether ject.

When hardware manufacturers offer their full technical documentation about their products, operating system developers are able to write device drivers that can be inserted into the operating system's kernel . Some manufacturers, such as B. NVIDIA , do not provide complete documentation for their products, instead only binary drivers (binary blobs) are available. This practice is widespread for accelerated graphics drivers , network devices, and hardware RAID controllers.

Differentiation from device firmware

Firmware is the software that is responsible for the onboard microcontroller . Firmware is generally not viewed as a binary blob. In many devices, firmware is stored in non-volatile memory to reduce costs and facilitate upgrades . Some devices only contain static RAM and therefore the operating system must always reload the firmware when these are connected (especially with USB devices). Although the firmware is present in this way in the operating system driver, it is only copied to the device and not executed by the CPU. This significantly reduces concerns about security risks.

acceptance

Some projects try to develop free operating systems and therefore do not accept binary blobs unless they include the documentation on the hardware or the source code of the device driver. Examples of such projects are Trisquel , Parabola and LibreCMC . Other projects differentiate between exclusively binary software and exclusively binary firmware and therefore also distribute binary blobs. Project examples for this would be NetBSD , FreeBSD , DragonFly BSD and some Linux distributions .

The OpenBSD project has a noteworthy principle on this subject, the project does not accept binary blobs in its "source tree" (although firmware blobs for OpenBSD are available separately). Not only the potential for undiscovered or irreparable security errors, but also the impairment for the openness and freedom of your software are mentioned.

The Free Software Foundation (FSF for short) is actively campaigning against binary blobs. They regard the OpenBSD principle as confusing, since "blobs" in the BSD community denotes non-free drivers and not non-free firmware. The Debian project included under its partnership agreement both free and unfree Binärfirmware, but each clearly labeled and separated from each other software packages. As of Debian 6.0 these blobs have been removed.

Theo de Raadt , the project manager of OpenBSD, defends the OpenBSD principle of only asking for distribution rights for these microcode firmware blobs.

"Once they are distributed ... at least the device works."

Once these are distributed ... at least the devices work. "

- Theo de Raadt

With this he implies that the alternative for the members of his project is to write free firmware in assembly language for many chipsets themselves . In addition, he asserts: "Don't load us up with more tasks." "Not encumbers us with even more tasks." . Regardless of this, he favors chipsets that work without firmware and speaks of "Asian design", which he describes as more difficult to market, but sufficient. In the Linux kernel development community, Linus Torvalds has made arguments about the problem of binary modules. He claims:

“I refuse to even consider tying my hands over some binary-only module. I want people to know that when they use binary-only modules, it's THEIR problem. "

I even refuse to even think about tying my hands on binary modules. I want to let people know: if they are using binary modules, this is THEIR problem. "

- Linus Torvalds

In 2008, 176 kernel developers signed a position paper on Linux kernel modules stating:

"We, the undersigned Linux kernel developers, consider any closed-source Linux kernel module or driver to be harmful and undesirable ... We have repeatedly found them to be detrimental to Linux users, businesses, and the greater Linux ecosystem."

We, the undersigned Linux kernel developers, consider any source-closed Linux kernel module or driver as dangerous and undesirable ... We have found them to be harmful to Linux users, companies and larger Linux ecosystems several times. "

- Position Statement on Linux Kernel Modules

However, the Linux kernel contains a large number of binary blobs that primarily contain closed-source firmware that is required for different device drivers. Alexandre Oliva, the maintainer of Linux-libre - a version of the Linux kernel without binary blobs - wrote in 2011:

“Linux hasn't been Free Software since 1996, when Mr Torvalds accepted the first pieces of non-Free Software in the distributions of Linux he has published since 1991. Over these years, while this kernel grew by a factor of 14, the amount of non-Free firmware required by Linux drivers grew by an alarming factor of 83. We, Free Software users, need to join forces to reverse this trend, and part of the solution is Linux-libre, whose release 2.6.33-libre was recently published by FSFLA, bringing with it freedom, major improvements and plans for the future. "

Linux has not been free software since 1996, because at that time Mr. Torvalds accepted the first non-free software parts in the Linux distributions that he has published since 1991. Over the years the kernel has grown by a factor of 14, but the amount of non-free firmware required for Linux drivers has grown by an alarming factor of 83. We, the users of free software, have to unite and reverse this trend. Part of the solution is Linux-libre, version 2.6.33-libre of which has just been released by the FSFLA and brings freedom, big improvements and plans for the future. "

- Alexandre Oliva

legality

The prominent Linux kernel developer Greg Kroah-Hartman stated that it was illegal to distribute closed-source modules for the Linux kernel licensed under the GPL .

Problems

There are a few reasons why binary blobs can be problematic:

  • How they work is unknown and program errors cannot be detected with a source code check. However, errors are often diagnosed when a system begins to behave unpredictably. Such undiscovered programming errors expose users and systems to security gaps. The utility of drivers cannot be verified and if bugs arise there is no way to fix them.
  • Since the source code is not openly available, drivers cannot be improved by their users or ported to other architectures or adapted for slightly modified variants of the hardware.
  • Users are forced to blindly trust the manufacturer of the blob that they have not integrated any backdoors or spying software into the blob. Manufacturers can also choose not to support certain operating systems or stop supporting drivers after a while. In addition, the company could become insolvent and thus no longer develop the driver.
  • Binary blobs drive a wedge between the part of the community that believes in the ideals of free software and therefore rejects proprietary software and the part that finds open source desirable for technical reasons, but accepts binary blobs “as long as they work”. This fragmentation and the acceptance of the growing number of proprietary components in Linux weaken the ability of the community to defend itself against the trend of manufacturers not to offer documentation for their hardware. In the future, it could be impossible to run a completely free operating system on much of the available hardware.

Use via wrappers

A wrapper is software that allows one operating system to use binary blob drivers written for another operating system. Examples of wrappers are NDISwrapper for Linux and Project Evil for FreeBSD and NetBSD . These wrappers allow systems to use the network drivers written for Microsoft Windows by implementing Microsoft's NDIS API .

BIOS

The BIOS functions as a boot loader and supports legacy real-mode applications, which makes it an important component for any IBM-compatible computer . The BIOS is always in 16-bit, mostly it also has network functions and can therefore also represent a security backdoor (sometimes on purpose; the problem here is that the operating system has no control over this backdoor and does not know anything about it). That is why the FSF is promoting the Libreboot project in its campaign for free BIOS firmware.

See also

Portal: Free Software  - Overview of Wikipedia content on the subject of Free Software

Web links

Individual evidence

  1. Michael Larabel: Coreboot: Replacing Intel's Binary Video BIOS Blob . Phoronix . August 6, 2012. Accessed June 23, 2015.
  2. Chris Hoffmann: How Intel and PC makers prevent you from modifying your laptop's firmware . February 13, 2015. Accessed June 23, 2015.
  3. BIOS Freedom Status . November 12, 2014. Accessed June 23, 2015.
  4. Michael Larabel: Raspberry Pi GPU Driver Turns Out To Be Crap . Phoronix . October 24, 2012. Accessed June 23, 2015.
  5. Jake Edge: Chromium suddenly starts downloading a binary blob . LWN.net . June 17, 2015. Accessed June 23, 2015.
  6. Debian packages built from the source package 'firmware-nonfree' - Binary firmware for various drivers in the Linux kernel . 2010. Retrieved March 25, 2010.
  7. Jem Matzan: BSD cognoscenti on Linux . NewsForge. June 15, 2005. Archived from the original on March 23, 2006. Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved July 7, 2006. See Christos Zoulas's response to "Is sharing between Free / Open / NetBSD and the Linux kernel a common occurrence? And if so, does it go both ways?" @1@ 2Template: Webachiv / IABot / os.newsforge.com
  8. Jeremy Andrews: Interview: Theo de Raadt . In: KernelTrap . Jeremy Andrews. May 2, 2006. Archived from the original on June 3, 2006. Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / kerneltrap.org
  9. ^ Protest against ATI nearly led to the arrest of RMS . Free Software Foundation. April 27, 2006. Retrieved October 10, 2006.
  10. Explaining Why We Don't Endorse Other Systems . GNU Project. July 13, 2011. Retrieved September 10, 2011.
  11. Debian firmware-linux packages . 2010. Retrieved March 25, 2010.
  12. Explaining Why We Don't Endorse Other Systems # Debian . 2013. Retrieved March 29, 2013.
  13. Jeremy Andrews: Interview: Theo de Raadt . In: KernelTrap . Jeremy Andrews. May 2, 2006. Archived from the original on June 3, 2006. Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / kerneltrap.org
  14. a / lt-binary . In: lwn.net .
  15. ^ Greg Kroah-Hartman : A position statement on Linux Kernel Modules . The Linux Foundation . June 2008.
  16. Free System Distribution Guidelines (GNU FSDG) - GNU Project - Free Software Foundation . In: gnu.org .
  17. Explaining Why We Don't Endorse Other Systems - GNU Project - Free Software Foundation . In: gnu.org .
  18. :: [FSFLA :: Take your freedom back, with Linux-2.6.33-libre] . In: fsfla.org .
  19. ^ Greg Kroah-Hartman : Myths, Lies, and Truths about the Linux kernel . Linux symposium . 2006 .: "So, here's the simple answer to this issue: Closed source Linux kernel modules are illegal. That's it, it is very simple. I've had the misfortune of talking to a lot of different IP lawyers over the years about this topic, and every one that I've talked to all agree that there is no way that anyone can create a Linux kernel module, today, that can be closed source. It just violates the GPL due to fun things like derivative works and linking and other stuff. Again, it's very simple. Now no lawyer will ever come out in public and say this, as lawyer really aren't allowed to make public statements like this at all. But if you hire one, and talk to them in the client / lawyer setting, they will advise you of this issue. "
  20. Jeremy Andrews: Interview with Jonathan Gray and Damien Bergamini . kerneltrap.org. April 19, 2006. Archived from the original on July 9, 2012. Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved January 6, 2008. @1@ 2Template: Webachiv / IABot / kerneltrap.org
  21. Intel vPro Technology . Intel.com. May 14, 2012. Retrieved April 10, 2014.
  22. BIOS & Firmware Compatibility . Absolute.com. Retrieved April 10, 2014.
  23. as per IBM PC specs
  24. ^ Campaign for Free BIOS . Free Software Foundation. November 29, 2006. Retrieved January 2, 2007.