Proprietary firmware is any
firmware on which is not
free (libre). Examples of proprietary works include ones upon which the author has placed restrictions on use, private modification,
copying, or
republishing.
Proprietors may enforce restrictions by technical means, such as by restricting
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
access, firmware replacement restrictions (by denying complete tooling that may be necessary in order to recompile and replace the firmware), or by legal means, such as through
copyright
A copyright is a type of intellectual property that gives its owner the exclusive right to copy, distribute, adapt, display, and perform a creative work, usually for a limited time. The creative work may be in a literary, artistic, educatio ...
and
patents.
Proprietary firmware may range from just a few kilobytes of
microcode for a
network interface controller
A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network.
Ear ...
to megabytes of binaries for a
wireless router
A wireless router is a device that performs the functions of a router and also includes the functions of a wireless access point. It is used to provide access to the Internet or a private computer network. Depending on the manufacturer and mode ...
.
Custom firmware Custom firmware, also known as aftermarket firmware, is an unofficial new or modified version of firmware created by third parties on devices such as video game consoles and various embedded device types to provide new features or to unlock hidden ...
may still be available for certain products, which is often
free and open-source software, and is especially popular in certain segments of hardware like
gaming consoles,
wireless router
A wireless router is a device that performs the functions of a router and also includes the functions of a wireless access point. It is used to provide access to the Internet or a private computer network. Depending on the manufacturer and mode ...
s and
Android phones, which are capable of running complete general-purpose
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s like
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
,
FreeBSD or
NetBSD, which are often the systems used by the manufacturer in their original proprietary firmware.
Difficult to avoid
Proprietary firmware (and especially the microcode) is much more difficult to avoid than
proprietary software
Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and i ...
or even
proprietary device driver
In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source oper ...
s, because the firmware is usually very specific to the manufacturer of each device (often being unique for each model), and the programming documentation and complete specifications that would be necessary to create a replacement are often withheld by the hardware manufacturer. One potential solution is going with
open-source hardware, which goes a step further by also providing schematics for replicating the hardware itself.
Even though both proprietary firmware and
proprietary device driver
In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source oper ...
s are shipped in binary form, to be practical, the term "binary blobs" is used only to refer to proprietary drivers by some people, whereas others use the term to refer to proprietary firmware too.
Distribution issues
Many open-source operating systems reluctantly choose to include proprietary firmware files in their distributions simply to make their
device drivers work, because manufacturers try to save money by removing
flash memory or
EEPROM from their devices, requiring the operating system to upload the firmware each time the device is used. However, in order to do so, the operating system still has to have distribution rights for this proprietary microcode. If such distributions rights are not obtained, then the device will not work; this especially presents a chicken-and-egg issue with
wireless network interface controller
A wireless network interface controller (WNIC) is a network interface controller which connects to a wireless network, such as Wi-Fi or Bluetooth, rather than a wired network, such as a Token Ring or Ethernet. A WNIC, just like other NICs, wor ...
s from certain manufacturers which cannot be used until such files are somehow obtained first, which is difficult to accomplish when the wireless card doesn't work.
Security concerns
Proprietary firmware poses a significant security risk to the user, because of the
direct memory access
Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).
Without DMA, when the CPU is using programmed input/output, it is ...
(DMA) architecture of modern computers, and the potential for
DMA attack
A DMA attack is a type of side channel attack in computer security, in which an attacker can penetrate a computer or other device, by exploiting the presence of high-speed expansion ports that permit direct memory access (DMA).
DMA is included in ...
s.
Theo de Raadt
Theo de Raadt (; ; born May 19, 1968) is a South African-born software engineer who lives in Calgary, Alberta, Canada. He is the founder and leader of the OpenBSD and OpenSSH projects and was also a founding member of NetBSD. In 2004, De Raadt ...
of
OpenBSD suggests that wireless firmware are kept proprietary because of poor design quality, as well as firmware defects.
Mark Shuttleworth
Mark Richard Shuttleworth (born 18 September 1973) is a South African and British entrepreneur who is the founder and CEO of Canonical, the company behind the development of the Linux-based Ubuntu operating system. In 2002, Shuttleworth became ...
of
Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
suggests that "it's reasonable to assume that all firmware is a cesspool of insecurity courtesy of incompetence of the worst degree from manufacturers, and competence of the highest degree from a very wide range of such agencies".
However, the security and quality/reliability risks posed by proprietary microcode may be lower than those posed by
proprietary device driver
In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source oper ...
s, because the microcode in this context isn't
linked against the
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
, and doesn't run on the host's
main processor.
Examples
*
Breathalyser
A breathalyzer or breathalyser (a portmanteau of ''breath'' and ''analyzer/analyser'') is a device for estimating blood alcohol content (BAC), or to detect viruses or diseases from a breath sample.
The name is a genericized trademark of the Br ...
s
* Most
BIOS found in IBM-compatible Personal Computers
* Most
UEFI
UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples of ...
found in modern x86 Computers
*
ARCS, used in computers from
Silicon Graphics
Silicon Graphics, Inc. (stylized as SiliconGraphics before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing manufacturer, producing computer hardware and sof ...
*
Run-Time Abstraction Services
Run-Time Abstraction Services (RTAS) is run-time firmware that provides abstraction to the operating systems running on IBM System i and IBM System p computers.
It contrasts with Open Firmware
Open Firmware is a standard defining the interfac ...
(RTAS), used in computers from
IBM
* The
iPod's control menus
*
Cisco IOS
The Internetworking Operating System (IOS) is a family of proprietary network operating systems used on several router and network switch models manufactured by Cisco Systems. The system is a package of routing, switching, internetworking, and ...
*
Microcode in
wireless network interface controller
A wireless network interface controller (WNIC) is a network interface controller which connects to a wireless network, such as Wi-Fi or Bluetooth, rather than a wired network, such as a Token Ring or Ethernet. A WNIC, just like other NICs, wor ...
s,
video card
A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer mo ...
s,
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
processors, etc.
See also
*
ROM image
A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, or used to contain a computer's firmware, or from an arcade game's main board. The term is frequen ...
*
Open-source hardware
*
Coreboot
coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary firmware (BIOS or UEFI) found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and r ...
*
Open Firmware
Open Firmware is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers (IEEE). It originated at Sun Microsystems, where it was known as OpenBoot, and has bee ...
References
{{Embedded systems
Free software culture and documents
Proprietary software
Software distribution
Software licenses
Software by license
*