Binary blob: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 1:
A '''binary blob''' is a term used by some open source developers to describe an opaque [[Binary file|binary]] object for which no source code is available. In some operating system communities, such as those of [[Ubuntu (Linux distribution)|Ubuntu]] and [[OpenBSD]], the term refers to partial or complete drivers provided by companies such as [[ATI Technologies|ATI]] and [[NVIDIA]] to provide support for their [[hardware]]. Such blobs can be a point of conflict between [[open source software|open source]] and [[free software]] advocates and developers and regular users of the operating system, as binary blobs can provide convenient support for popular hardware at the cost of the ability to read and modify, everyand partthus ofcontrol, the operating system.
 
In order to make use of some binary blobs which are not directly provided for an operating system, projects use software [[wrapper]]s such as the [[NdisWrapper]] on [[Linux]], or Project Evil on [[FreeBSD]] and [[NetBSD]] in order to run [[Microsoft Windows|Windows]] drivers, which make use of [[Microsoft]]'s [[NDIS]] [[Application programming interface|API]].
The OpenBSD project has a notable policy of not accepting binary blobs into its source tree, citing not only the potential for undetectable or irreparable security flaws but also its encroachment onto the openness and freedom of their software.<ref>{{cite web|last = Music composed by Ty Semaka and Jonathan Lewis. Recorded, mixed and mastered by Jonathan Lewis of Moxam Studios (1-403-233-0350). Vocals and Lyrics by Ty Semaka & Theo de Raadt. Bass guitar, organ and bubbles by Jonathan Lewis. Guitar by Tom Bagley. Drums by Jim Buick|url = http://www.openbsd.org/lyrics.html#39|title = 3.9: "Blob!"|publisher = OpenBSD|accessdate = 2006-06-22}}</ref> This stance is expected to be somewhat validated by information soon to be released revealing an exploit within the binary driver for a wireless network card.<ref>{{cite web|last = An article by Robert McMillan of IDG News Service regarding the hacking of a Wi-Fi binary blob driver - 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|accessdate = 2006-06-23}}</ref> Further details are expected at the [[August 2]] [[2006]] [[Black Hat Briefings|Black Hat USA]].
 
The OpenBSD project has a notable policy of not accepting binary blobs into its source tree, citing not only the potential for undetectable or irreparable security flaws but also its encroachment onto the openness and freedom of their software.<ref>{{cite web|last = Music composed by Ty Semaka and Jonathan Lewis. Recorded, mixed and mastered by Jonathan Lewis of Moxam Studios (1-403-233-0350). Vocals and Lyrics by Ty Semaka & Theo de Raadt. Bass guitar, organ and bubbles by Jonathan Lewis. Guitar by Tom Bagley. Drums by Jim Buick|url = http://www.openbsd.org/lyrics.html#39|title = 3.9: "Blob!"|publisher = OpenBSD|accessdate = 2006-06-22}}</ref> This stance ishas expected to bebeen somewhat validated by information soonreleased toduring bethe released[[August revealing2]], [[2006]] [[Black Hat Briefings|Black Hat USA]] convention where an exploit within the binary driver for athe [[Atheros]] wireless network card.cards used in [[MacBook Pro]]s and elsewhere was revealed<ref>{{cite web|last = An article by Robert McMillanKelly Martin of IDG News ServiceSecurityFocus regarding the hacking of a Wi-Fi binary blob driver - JuneAugust 213, 2006|url = http://www.infoworldsecurityfocus.com/articlebrief/06/06/21/79536_HNwifibreach_1.html271|title = ResearchersWiFi hackmakes Wi-Fiwaves driverat to breach laptop|publisher = InfoWorldBlackhat|accessdate = 2006-0608-2325}}</ref> Further details are expected at the [[August 2]] [[2006]] [[Black Hat Briefings|Black Hat USA]].
 
Other operating system projects, including [[NetBSD]], [[FreeBSD]], [[DragonFly BSD]], and the [[Ubuntu (Linux distribution)|Ubuntu]] and [[Fedora Core|Fedora]] [[Linux distributions]], take a pragmatic view and accept binary blobs as a fast route to the missing or enhanced functionality they provide.<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 | accessdate = 2006-07-07 | last = Matzan | first = Jem | date = [[2005-06-15]] | publisher = NewsForge }} 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?"</ref> They include binary blobs for varied purposes, ranging from [[Redundant Array of Inexpensive Disks|RAID]], to networking and accelerated graphics drivers.
It is worth noting that the [[Free software foundation]] is actively campaigning against binary blobs, even though many [[Linux distributions]] include them.{{fact}}
 
A binary blob is generally not considered the same as a [[firmware]] package that accompanies a particular device. Firmwareas the firmware is the operating software required by the device's onboard microcontroller. Normally, it is stored in [[Flash memory|Flash EPROM]], but some manufacturers use RAM based firmware stores for cost and upgradeability reasons. This means that while the code for a firmware image may be closed, the code itself does not run within the operating system's kernel space. Firmware images are acceptable to OpenBSD because they do not operate within the kernel space - as a binary driver does - and will redistribute said images as long as the manufacturers allow them to without restriction.<ref>{{cite web | title = OpenBSD Works To Open Wireless Chipsets - November 2, 2004 |url = http://kerneltrap.org/node/4118 | accessdate = 2006-06-23}}</ref>
In order to make use of some binary blobs which are not directly provided for an operating system, projects use software [[wrapper]]s such as the [[NdisWrapper]] on [[Linux]], or Project Evil on [[FreeBSD]] and [[NetBSD]] in order to run [[Microsoft Windows|Windows]] drivers, which make use of [[Microsoft]]'s [[NDIS]] [[Application programming interface|API]].
 
==See also==
A binary blob is not the same as a firmware package that accompanies a particular device. Firmware is the operating software required by the device's onboard microcontroller. Normally, it is stored in [[Flash memory|Flash EPROM]], but some manufacturers use RAM based firmware stores for cost and upgradeability reasons. Firmware images are acceptable to OpenBSD because they do not operate within the kernel space - as a binary driver does - and will redistribute said images as long as the manufacturers allow them to without restriction.<ref>{{cite web | title = OpenBSD Works To Open Wireless Chipsets - November 2, 2004 |url = http://kerneltrap.org/node/4118 | accessdate = 2006-06-23}}</ref>
{{portalpar|Free software|Floss draft.png}}
* [[Wireless security]]
* [[Loadable Kernel Module]]
 
==Notes and references==
Line 14 ⟶ 19:
<references />
</div>
 
==External links==
* {{cite web|last = An article by Robert McMillan of IDG News Service regarding the hacking of a Wi-Fi binary blob driver - 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|accessdate = 2006-06-23}}
* [http://kerneltrap.org/node/6650 KernelTrap article] on Damien Bergamini's wpi(4) driver, a blobless ipw3945 alternative for OpenBSD
* [http://kerneltrap.org/node/6497 KernelTrap interview] with Jonathan Gray and Damien Bergamini regarding binary blobs
* [http://blog.washingtonpost.com/securityfix/2006/08/the_macbook_wireless_exploit_i.html The Black Hat Wireless Exploit Interview, Verbatim] by Brian Krebs on the Washington Post's website, http://washingtonpost.com
 
[[Category:OpenBSD]]