Content deleted Content added
Maxeto0910 (talk | contribs) Added short description. Tags: Mobile edit Mobile web edit Advanced mobile edit |
m Task 18 (cosmetic): eval 37 templates: hyphenate params (16×); |
||
Line 4:
| url = https://www.phoronix.com/scan.php?page=news_item&px=MTE1NDc
| title = Coreboot: Replacing Intel's Binary Video BIOS Blob
| date = 2012-08-06 |
| author = Michael Larabel | publisher = [[Phoronix]]
}}</ref><ref>{{cite web
| url = http://www.pcworld.com/article/2883903/how-intel-and-pc-makers-prevent-you-from-modifying-your-pcs-firmware.html
| title = How Intel and PC makers prevent you from modifying your laptop's firmware
| date = 2015-02-13 |
| author = Chris Hoffmann | website = pcworld.com
}}</ref><ref>{{cite web
| url = https://puri.sm/posts/bios-freedom-status/
| title = BIOS Freedom Status
| date = 2014-11-12 |
| website = puri.sm
}}</ref><ref>{{cite web
| url = https://www.phoronix.com/scan.php?page=news_item&px=MTIxNDk
| title = Raspberry Pi GPU Driver Turns Out To Be Crap
| date = 2012-10-24 |
| author = Michael Larabel | publisher = [[Phoronix]]
}}</ref><ref>{{cite web
| url = https://lwn.net/Articles/648392/
| title = Chromium suddenly starts downloading a binary blob
| date = 2015-06-17 |
| author = Jake Edge | publisher = [[LWN.net]]
}}</ref><ref name=lyrics-39>{{cite web
Line 33:
}}</ref> The term ''[[Binary large object|blob]]'' was first used in [[database management system]]s 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#Documentation and drivers|Nvidia]], do not provide complete documentation for some of their products and instead provide binary-only drivers. This practice is most common for [[GPU|accelerated graphics]] drivers, [[Wireless network interface controller|wireless networking device]]s, and hardware [[RAID controller]]s.<ref>{{cite web | url = https://packages.debian.org/source/sid/firmware-nonfree | title = Debian packages built from the source package 'firmware-nonfree' - Binary firmware for various drivers in the Linux kernel | year = 2010 |
|author= Constantine A. Murenin |date= 2006-12-10
|url= https://www.linux.org.ru/news/hardware/1690470
Line 53:
== Open source operating systems ==
Some [[Free Software Foundation|FSF]]-approved projects strive to provide a [[Free software movement|free]] operating system and will remove all binary blobs when no documentation for hardware or [[source code]] for device drivers and all applicable firmware is available; such projects include [[Linux-libre]] kernel packaging from [[FSFLA]], [[Parabola (software)|Parabola]], [[Devuan]], [[Trisquel]], and [[LibreCMC]].{{r|gnu/free-distros}} However, the vast majority of open-source projects make a distinction between binary-only device drivers (blobs) and binary-only firmware (not considered blobs{{r|kerneltrap/6497|p=…|q=Firmwares are not considered blobs}}), allowing for certain proprietary firmware to be freely distributed as part of their kernels, and, to the disagreement of some core contributors, also support the use of proprietary device drivers that are distributed externally, providing internal compatibility interfaces for such proprietary drivers and userspace components to work with their system.{{r|f-aac|f-aacraid}} Projects following this policy include the [[Linux kernel]] itself, [[NetBSD]], [[FreeBSD]], [[DragonFly BSD]], and most [[Linux distribution]]s.<ref name="bsdinterview">{{cite web | url = http://os.newsforge.com/os/05/06/09/2132233.shtml?tid=8&tid=2 | title = BSD cognoscenti on Linux |
The [[OpenBSD]] project has a notable policy of not only not accepting any binary device drivers into its source tree, but also officially not supporting any third-party proprietary device driver components on its platform, either;{{r|lyrics-38|p=38…|q=we refuse to accept our users being forced into depending on vendor binaries}} citing not only the potential for undetectable or irreparable security flaws, but also the encroachment onto the openness and freedom of its software.<ref name="deraadt_interview_200605">{{citation
Line 66:
|archive-date=2006-06-03
|url-status=dead
}}</ref> The [[Free Software Foundation]] (FSF) is actively campaigning against binary blobs.<ref>{{cite web|url=https://www.fsf.org/blogs/community/rms-ati-protest.html|title=Protest against ATI nearly led to the arrest of RMS|date=27 April 2006|
For OpenBSD, project leader [[Theo de Raadt]] defends the policy of asking for distribution rights only for microcode firmware. "Once they are distributed... at least the device works." Implying that the alternative would be for the members of his small project to code free firmware themselves in the assembly language of many chipsets, he pleads "don't load us up with more tasks." Despite this he favours chipsets that run without firmware and speaks warmly of Asian designs which he describes as slower to market but more mature.<ref name="deraadt_interview_200605" />
Line 78:
== Problems ==
There are a number of reasons why binary blobs can be problematic.<ref name="kerneltrap/6497">{{cite web |url=http://kerneltrap.org/node/6497 |first=Jeremy |last=Andrews |title=Interview with Jonathan Gray and Damien Bergamini |
Firstly, their precise operation cannot be known and bugs cannot be detected by auditing source code; bugs are frequently only diagnosed by painstaking investigation when a system begins to behave unexpectedly. Such undetected bugs may also silently expose users and systems to security hazards. The fitness for purpose of the driver thus cannot be checked, and even if a bug is found there is no easy way to fix it.
Line 114:
|conference= OpenCON 2006, 2–3 December 2006
|___location= Courtyard Venice Airport, Venice/Tessera, Italy
|
|quote= drivers designed for binary only Linux RAID management tools
}}</ref>
Line 132:
== Device firmware ==
{{main|Firmware|Microcode}}
[[Firmware]] is the software required by the onboard [[microcontroller]]s that accompany some hardware, is generally not considered to be a binary blob.{{r|kerneltrap/4118|gnu/common-d|p2=BSD|kerneltrap/6497|p3=…|q3=Firmwares are not considered blobs}} In many devices, firmware is stored in [[non-volatile]] onboard [[flash memory]], but to decrease costs and ease upgrades, some devices contain only [[static RAM]] and require the host operating system to upload firmware each time they are connected (especially [[USB]] devices). Although the firmware is thus present in the operating system driver, it is merely copied to the device and not executed by the CPU, removing concerns about extra security flaws compared to what's already possible with a [[DMA attack]] even if the firmware was already stored within the device at all times. The OpenBSD project accepts binary firmware/[[microcode]] images and will redistribute these images if the license permits;<ref name="kerneltrap/4118">{{cite web |title=OpenBSD Works To Open Wireless Chipsets |date=November 2, 2004 |publisher=KernelTrap |url=http://kerneltrap.org/node/4118 |
== BIOS and UEFI==
[[File:Coreboot+seaBIOS+on-x60.JPG|thumb|upright|[[SeaBIOS]], an open-source implementation of BIOS, running as coreboot payload on a Lenovo [[ThinkPad]] X60]]
The [[BIOS]], which functions as a [[bootloader]] and supports legacy [[real mode]] applications, is a crucial component of many [[IBM-compatible]] computers. The BIOS is always 16-bit, can be a security [[Backdoor (computing)|backdoor]].<ref>{{cite web|url=http://www.intel.com/content/www/us/en/architecture-and-technology/vpro/vpro-technology-general.html |title=Intel vPro Technology |publisher=Intel.com |date=2012-05-14 |
Also in the late 1990s, the [[coreboot]] project was started to create an open source alternative to legacy BIOS from scratch.<ref name="Apress"/> The coreboot developer community organises around [[Stefan Reinauer]] and is led by firmware developers with commit rights.<ref>{{cite book |authors = Vincent Zimmer, Jiming Sun, Marc Jones & Stefan Reinauer |date= 2015 |title= Embedded Firmware Solutions: Development Best Practices for the Internet of Things |publisher= Apress |isbn= 9781484200704 | page = 61}}</ref> Despite closed source binary firmware having been at the heart of the [[x86]] architecture coreboot only incorporates the few proprietary binaries that are necessary to provide users with a base level hardware support.<ref>{{cite book |authors = Vincent Zimmer, Jiming Sun, Marc Jones & Stefan Reinauer |date= 2015 |title= Embedded Firmware Solutions: Development Best Practices for the Internet of Things |publisher= Apress |isbn= 9781484200704 | page = 65}}</ref> A completely open source alternative to BIOS and UEFI is [[libreboot]], which was promoted by the [[Free Software Foundation]] (FSF).<ref>{{cite web|url=https://www.fsf.org/campaigns/free-bios.html|title=Campaign for Free BIOS|publisher=Free Software Foundation|date=2006-11-29|
== See also ==
Line 182:
{{Wiktionary|blob}}
* {{cite web|last = McMillan|first = Robert|date = June 21, 2006|url = http://www.infoworld.com/article/06/06/21/79536_HNwifibreach_1.html|title = Researchers hack Wi-Fi driver to breach laptop|publisher = InfoWorld|
* [https://web.archive.org/web/20060603230511/http://kerneltrap.org/node/6650 KernelTrap article] on Damien Bergamini's wpi(4) driver, a blobless ipw3945 alternative for OpenBSD
* [https://web.archive.org/web/20071211025952/http://kerneltrap.org/node/6497 KernelTrap interview] with Jonathan Gray and Damien Bergamini regarding binary blobs
|