Binary blob: Difference between revisions

Content deleted Content added
m Reverting possible vandalism by GayAsJamesCharles to version by JJMC89 bot III. Report False Positive? Thanks, ClueBot NG. (3992665) (Bot)
m markup delint for broken tag report, convert special characters found by Wikipedia:Typo Team/moss (via WP:JWB)
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 | access-date = 2006-07-07 | last = Matzan | first = Jem | date = 15 June 2005 | publisher = NewsForge | url-status = dead | archive-url = https://web.archive.org/web/20060323022626/http://os.newsforge.com/os/05/06/09/2132233.shtml?tid=8&tid=2 | archive-date = 23 March 2006 }} 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> Some of these projects do provide options for building the system without proprietary firmware, thus excluding sourceless microcode on demand.<ref name=f-sourceless-ucode>{{cite web |url= http://bxr.su/f/tools/build/options/WITHOUT_SOURCELESS_UCODE |title= build/options/WITHOUT_SOURCELESS_UCODE |website= BSD Cross Reference |publisher= [[FreeBSD]] |date= 2012-02-04}}</ref>
 
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…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
|url=http://kerneltrap.org/node/6550
|title=Interview: Theo de Raadt
Line 75:
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}} [[Alexandre Oliva]], the maintainer of [[Linux-libre]], a version of the Linux kernel that attempts to remove all binary blobs, including sourceless microcode, wrote in 2011: "Linux hasn't been Free Software since 1996, when Mr Torvalds accepted the first pieces of non-Free Software in the distributions of Linux he has published since 1991. Over these years, while this kernel grew by a factor of 14, the amount of non-Free firmware required by Linux drivers grew by an alarming factor of 83."<ref>{{cite web|url=https://www.fsfla.org/ikiwiki/anuncio/2010-03-Linux-2.6.33-libre.en|title=::[FSFLA]:: Take your freedom back, with Linux-2.6.33-libre|work=fsfla.org}}</ref>
 
Most of the drivers for [[mobile device]]s running the [[Android (OS)|Android operating system]] are shipped in binary and are linked against a specific version of the Linux kernel. This makes it very hard to upgrade a kernel version because it may require [[reverse-engineering]], reimplementing the proprietary device drivers as free software, creating and debugging wrappers, [[binary patch]]ing, or a combination of these steps, all of which implies that legacy devices will never get the latest Android version.{{citation needed||date=March 2019}}
 
== Problems ==
Line 98:
|author1= Scott Long |author2= Adaptec, Inc |author2-link= Adaptec |date= 2000
|lay-url= http://mdoc.su/f/aac.4
|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aac_linux.ko and linux.ko modules are loaded,…...
}}</ref><ref name=f-aacraid>{{cite web
|url= http://bxr.su/f/share/man/man4/aacraid.4
Line 105:
|author1= Achim Leubner |date= 2013
|lay-url= http://mdoc.su/f/aacraid.4
|quote= If the kernel is compiled with the COMPAT_LINUX option, or the aacraid_linux.ko and linux.ko modules are loaded,…...
}}</ref><ref name=opencon06-drivers-f>{{Cite conference
|author= Jonathan Gray |date= 2006-12-02
Line 133:
== 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 |access-date=2006-06-23 |url-status=dead |archive-url=https://web.archive.org/web/20060620051155/http://kerneltrap.org/node/4118 |archive-date=2006-06-20 }}</ref><ref>{{cite web |url= http://openbsd.su/src/sys/dev/microcode/ |title=/sys/dev/microcode/ |work= [[OpenBSD]] }}</ref> if free and unconditional redistribution is not permitted by the vendor, the machine instructions on fetching these images may be provided in the [[OpenBSD ports|ports]] tree (which precludes some encumbered wireless devices (e.g., Intel Wireless) from being available during the initial install).<ref name=o-ports>{{cite web |url= http://openbsd.su/ports/sysutils/firmware |title=sysutils/firmware |work= [[OpenBSD ports]]}}</ref>
 
== BIOS and UEFI==