Content deleted Content added
Maxeto0910 (talk | contribs) Added short description. Tags: Mobile edit Mobile web edit Advanced mobile edit |
Beeblebrox (talk | contribs) m Removing link(s) Wikipedia:Articles for deletion/Alexandre Oliva closed as delete (XFDcloser) |
||
(42 intermediate revisions by 23 users not shown) | |||
Line 1:
{{
▲{{short description|Closed-source device driver published only in binary code}}
| 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 ⟶ 34:
}}</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#
|author= Constantine A. Murenin |date= 2006-12-10
|url= https://www.linux.org.ru/news/hardware/1690470
Line 52 ⟶ 53:
}}</ref>
==
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=
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=
|url=http://kerneltrap.org/node/6550
|title=Interview: Theo de Raadt
Line 66 ⟶ 67:
|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" />
[[File:Linux AMD graphics stack.svg|thumb|300px| The proprietary Linux graphic driver, {{Mono|[[AMD Catalyst|libGL-fglrx-glx]]}}, will share the same [[Direct Rendering Manager|DRM]] infrastructure with [[Mesa 3D]]. As there is no stable in-kernel [[Application binary interface|ABI]], AMD had to constantly adapt the former
In the [[Linux kernel]] development community, [[Linus Torvalds]] has made strong statements on the issue of binary-only modules, asserting: "I ''refuse'' to even consider tying my hands over some binary-only module", and continuing: "I want people to know that when they use binary-only modules, it's THEIR problem."<ref>{{cite web|url=https://lwn.net/1999/0211/a/lt-binary.html|title=a/lt-binary|work=lwn.net}}</ref> In 2008, 176 Linux kernel developers signed a ''Position Statement on Linux Kernel Modules'' that stated "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."<ref>{{cite web|url=https://lwn.net/Articles/287056/|title=A position statement on Linux Kernel Modules|date=June 2008|author=Greg Kroah-Hartman|author-link=Greg Kroah-Hartman|publisher=[[The Linux Foundation]]}}</ref> The Linux kernel maintainer [[Greg Kroah-Hartman]] has stated that it is illegal to redistribute closed source modules for the [[GNU General Public License|GNU General Public License-licensed]] Linux kernel.<ref>{{cite web|url=http://www.kroah.com/log/linux/ols_2006_keynote.html|author=Greg Kroah-Hartman|author-link=Greg Kroah-Hartman|publisher=[[Linux Symposium]]|title=Myths, Lies, and Truths about the Linux kernel|year=2006}}</ref>
However, the Linux kernel contains closed-source firmware required by various device drivers.{{r|gnu/free-sys-d-g--nonfree-fw|q1=Nonfree Firmware|gnu/common-d}}
Most of the drivers for [[mobile device]]s running the [[Android (
== Problems ==
{{Essay-like|section|date=March 2021}}
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 89 ⟶ 91:
== Use via wrappers ==
A [[Driver wrapper|wrapper]] is software which allows one operating system to use a binary proprietary device driver written for another operating system. Examples of wrappers are [[
Another example is providing compatibility layers so that foreign utilities could be used to service the hardware. Examples include some [[Disk array controller|RAID controller]] drivers in [[FreeBSD]], where the [[system administrator]] would have to enable [[FreeBSD#OS compatibility layers|Linux compatibility layer in FreeBSD]] and independently procure Linux-specific binary blobs directly from the hardware manufacturer in order to monitor and service the hardware.<ref name=f-aac>{{cite web
|url= http://bxr.su/f/share/man/man4/aac.4
|title= aac(4) — Adaptec AdvancedRAID Controller driver
|website= BSD Cross Reference |publisher= [[FreeBSD]]
|author1= Scott Long |author2= Adaptec, Inc |author2-link= Adaptec |date= 2000
|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aac_linux.ko and linux.ko modules are loaded
}}
▲|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aac_linux.ko and linux.ko modules are loaded,…
*{{cite book |section=aac -- Adaptec AdvancedRAID Controller driver |title=FreeBSD Manual Pages |url= http://mdoc.su/f/aac.4}}</ref><ref name=f-aacraid>{{cite web
|url= http://bxr.su/f/share/man/man4/aacraid.4
|title= aacraid(4) — Adaptec AACRAID Controller driver
|website= BSD Cross Reference |publisher= [[FreeBSD]]
|author1= Achim Leubner |date= 2013
|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aacraid_linux.ko and linux.ko modules are loaded
}}
▲|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aacraid_linux.ko and linux.ko modules are loaded,…
*{{cite book |section=aacraid -- Adaptec AACRAID Controller driver |title=FreeBSD Manual Pages |url=http://mdoc.su/f/aacraid.4}}</ref><ref name=opencon06-drivers-f>{{Cite conference
|author= Jonathan Gray |date= 2006-12-02
|section-url= http://www.openbsd.org/papers/opencon06-drivers/mgp00026.html
Line 114 ⟶ 116:
|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>
Circa 2005, this state of affairs prompted [[OpenBSD]] to create and popularise its [[bioctl|bio(4)]], [[bioctl]] and [[sensor drive]] concepts as an alternative solution for [[RAID]] monitoring,<ref name=theo-misc-38>{{cite mailing list
|url= //marc.info/?l=openbsd-misc&m=112630095818062
|author= Theo de Raadt
Line 132 ⟶ 134:
== Device firmware ==
{{main|Firmware|Microcode}}
[[Firmware]] is the software required by the onboard [[microcontroller]]s that
== 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.
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 |
== See also ==
Line 158 ⟶ 160:
== References ==
{{
<ref name="gnu/free-distros">{{cite web
Line 168 ⟶ 170:
|url= https://www.gnu.org/distros/free-system-distribution-guidelines.html#nonfree-firmware
|title= Nonfree Firmware
|work= {{Section link|GNU Project
|publisher= [[Free Software Foundation]]
}}</ref>
Line 182 ⟶ 184:
{{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
Line 191 ⟶ 193:
[[Category:Free software culture and documents]]
[[Category:
[[Category:Firmware]]
[[Category:Device drivers]]
[[Category:Booting]]
|