Content deleted Content added
cleanup |
Beeblebrox (talk | contribs) m Removing link(s) Wikipedia:Articles for deletion/Alexandre Oliva closed as delete (XFDcloser) |
||
(17 intermediate revisions by 11 users not shown) | |||
Line 1:
{{short description|Software published only in binary code}}
{{distinguish|Binary large object{{!}}Binary large object (BLOB)}}
In the context of [[free and open-source software]], proprietary software only available as a binary is referred to as a '''blob''' or '''binary blob'''. The term usually refers to a [[device driver]] [[Loadable kernel module|module]] [[Linker (computing)|loaded]] into the [[Kernel (computer science)|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 [[User space|userland]] programs.<ref>{{cite web▼
▲In the context of [[free and open-source software]], [[proprietary software]] only available as a [[executable|binary executable]] is referred to as a '''blob''' or '''binary blob'''. The term usually refers to a [[device driver]] [[Loadable kernel module|module]] [[Linker (computing)|loaded]] into the [[Kernel (
| url = https://www.phoronix.com/scan.php?page=news_item&px=MTE1NDc
| title = Coreboot: Replacing Intel's Binary Video BIOS Blob
Line 32 ⟶ 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 72 ⟶ 74:
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 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
Line 117 ⟶ 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 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 |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 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|access-date=2007-01-02}}</ref>
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 191 ⟶ 193:
[[Category:Free software culture and documents]]
[[Category:Pejorative terms related to technology]]
[[Category:Firmware]]
[[Category:Device drivers]]
[[Category:Booting]]
|