Proprietary firmware

Short description: Firmware with restrictions on use, private modification, copying, or republishing

The neutrality of this article is disputed. Please do not remove this message until conditions to do so are met. (April 2023) (Learn how and when to remove this template message)

|

Proprietary firmware is any firmware that has had its use, private modification, copying, or republishing restricted by the producer. Proprietors may enforce restrictions by technical means, such as by restricting source code 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 and patents. Alternatives to proprietary firmware may be free (libre) or open-source.

## Contents

* 1 Distribution
* 2 Security concerns
* 3 Alternatives
* 4 Examples
* 5 See also
* 6 References

## Distribution

Proprietary firmware (and especially the microcode) is much more difficult to avoid than proprietary software or even proprietary device drivers, 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.[1]

Many open-source operating systems reluctantly choose to include proprietary firmware files in their distributions simply to make their device drivers work,[2] 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.[3] However, in order to do so, the operating system still has to have distribution rights for this proprietary microcode.[3]

## Security concerns

Proprietary firmware poses a significant security risk to the user because of the direct memory access (DMA) architecture of modern computers and the potential for DMA attacks.[citation needed] Theo de Raadt of OpenBSD suggests that wireless firmware are kept proprietary because of poor design quality and firmware defects.[4][5] Mark Shuttleworth of Ubuntu 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".[6]

The security and reliability risks posed by proprietary microcode may be lower than those posed by proprietary device drivers, because the microcode in this context isn't linked against the operating system, and doesn't run on the host's main processor.[2]

## Alternatives

Custom firmware 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 routers and Android phones, which are capable of running complete general-purpose operating systems like Linux, FreeBSD or NetBSD, which are often the systems used by the manufacturer in their original proprietary firmware.

Another potential solution is going with open-source hardware, which goes a step further by also providing schematics for replicating the hardware itself.

## Examples

* Breathalysers[7]
* Most BIOS found in IBM-compatible Personal Computers[6]
* Most UEFI found in modern x86 Computers
* ARCS, used in computers from Silicon Graphics
* Run-Time Abstraction Services (RTAS), used in computers from IBM
* The iPod's control menus
* Cisco IOS
* Microcode in wireless network interface controllers, video cards, x86 processors, etc.

## See also

* ROM image
* Open-source hardware
* Coreboot
* Open Firmware

## References

1. ↑ Jeremy Andrews (2005-03-08). "Feature: OpenBSD's "Out of the Box" Wireless Support". http://kerneltrap.org/node/4818.
2. ↑ 2.0 2.1 Jeremy Andrews (2006-05-02). "Interview: Theo de Raadt". http://kerneltrap.org/node/6550.
3. ↑ 3.0 3.1 Jeremy Andrews (2004-11-02). "Feature: OpenBSD Works To Open Wireless Chipsets". http://kerneltrap.org/node/4118.
4. ↑ Theo de Raadt (2016-12-03). "Open Documentation for Hardware". OpenCON 2006, 2–3 December 2006. Courtyard Venice Airport, Venice/Tessera, Italy. http://www.openbsd.org/papers/opencon06-docs/.
5. ↑ Constantine A. Murenin (2006-12-10). "Почему так важно иметь документацию по программированию железа" (in ru). https://www.linux.org.ru/news/hardware/1690470.
6. ↑ 6.0 6.1 Mark Shuttleworth (2014-03-17). "ACPI, firmware and your security". https://www.markshuttleworth.com/archives/1332.
7. ↑ "Drunk drivers granted access to breathalyser source code". 2005-11-03. http://www.vnunet.com/vnunet/news/2145410/judge-gets-bottom-possible.

* v
* t
* e

Free and open-source software

General|

* Alternative terms for free software
* Comparison of open-source and closed-source software
* Comparison of source-code-hosting facilities
* Free software
* Free software project directories
* Gratis versus libre
* Long-term support
* Open-source software
* Open-source software development
* Outline

Software
packages|

* Audio
* Bioinformatics
* Codecs
* Collaboration
* Configuration management
* Device drivers
* Graphics
* Wireless
* Geophysics
* Health
* Mathematics
* Operating systems
* Programming languages
* Routing
* Statistics
* Television
* Video games
* Web applications
* Content management systems
* E-commerce
* Word processors
* Android apps
* iOS apps
* Commercial
* Trademarked
* Formerly proprietary

Community|

* Free software movement
* History
* Open-source-software movement
* Organizations
* Events

Licenses|

* AFL
* Apache
* APSL
* Artistic
* Beerware
* Boost
* BSD
* CC0
* CDDL
* EPL
* Free Software Foundation
* GNU GPL
* GNU LGPL
* ISC
* MIT
* MPL
* Ms-PL/RL
* Python
* Python Software Foundation License
* Sleepycat
* Unlicense
* WTFPL
* zlib

| Types and
standards|

* Comparison of free and open-source software licenses
* Contributor License Agreement
* Copyleft
* Debian Free Software Guidelines
* Definition of Free Cultural Works
* Free license
* The Free Software Definition
* The Open Source Definition
* Open-source license
* Permissive software license
* Public domain
* Viral license

|

Challenges|

* Digital rights management
* Firmware security
* Hardware restrictions
* License proliferation
* Mozilla software rebranding
* Proprietary device drivers
* Proprietary firmware
* Proprietary software
* SCO/Linux controversies
* Secure boot
* Software patents
* Software security
* Trusted Computing

Related topics|

* Forking
* GNU Manifesto
* Microsoft Open Specification Promise
* Open-core model
* Open-source hardware
* Shared Source Initiative
* Source-available software
* The Cathedral and the Bazaar
* Revolution OS

*   * Category
* Commons
* WikiProject
* Book

* v
* t
* e

Embedded systems

General terms|

* ASIC
* Board support package
* Bootloader
* Consumer electronics
* Cross compiler
* Embedded database
* Embedded hypervisor
* Embedded OS
* Embedded software
* FPGA
* IoT
* Memory footprint
* Microcontroller
* Single-board computer
* Raspberry Pi
* SoC

Firmware and controls|

* Closed platform
* Crippleware
* Custom firmware
* Defective by Design
* Hacking of consumer electronics
* Homebrew (video games)
* iOS jailbreaking
* PlayStation 3 Jailbreak
* Proprietary firmware
* Rooting (Android)
* Vendor lock-in

Software libraries|

* uClibc
* dietlibc
* Embedded GLIBC
* lwIP
* musl

Programming tools|

* Almquist shell
* Bitbake
* Buildroot
* BusyBox
* OpenEmbedded
* Stand-alone shell
* Toybox
* Yocto Project

Operating systems|

* Linux on embedded systems
* Linux for mobile devices
* Light-weight Linux distribution
* Real-time operating system
* Windows IoT
* Win CE

Programming languages|

* Ada
* Assembly language
* CAPL
* Embedded C
* Embedded C++
* Embedded Java
* MISRA C

* Lightweight browsers
* Open-source computing hardware
* Open-source robotics

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Proprietary firmware. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Proprietary_firmware&oldid=225454"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template