Content deleted Content added
Tags: Reverted Mobile edit Mobile web edit |
Beeblebrox (talk | contribs) m Removing link(s) Wikipedia:Articles for deletion/Alexandre Oliva closed as delete (XFDcloser) |
||
(30 intermediate revisions by 15 users not shown) | |||
Line 1:
{{short description|
{{
▲{{short description|Proprietary device driver, often published only in the form of binary code}}
| url = https://www.phoronix.com/scan.php?page=news_item&px=MTE1NDc
| title = Coreboot: Replacing Intel's Binary Video BIOS Blob
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=...|q=Firmwares are not considered blobs
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 70 ⟶ 71:
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 ==
Line 90 ⟶ 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
Line 118 ⟶ 119:
|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 133 ⟶ 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 |author=Vincent Zimmer |author2=Jiming Sun |author3=Marc Jones |author4=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 |author=Vincent Zimmer |author2=Jiming Sun |author3=Marc Jones |author4=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
== See also ==
Line 159 ⟶ 160:
== References ==
{{
<ref name="gnu/free-distros">{{cite web
Line 169 ⟶ 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 192 ⟶ 193:
[[Category:Free software culture and documents]]
[[Category:Pejorative terms related to technology]]
[[Category:Firmware]]
[[Category:Device drivers]]
[[Category:Booting]]
|