Firmware
Firmware is low-level software permanently or semi-permanently programmed into a device's hardware, providing the basic instructions that control the device and often bridging its hardware components with higher-level software.
Definition
Firmware is low-level software permanently or semi-permanently programmed into a device's hardware, providing the basic instructions that control the device and often bridging its hardware components with higher-level software.
Overview
Firmware typically lives in a device's non-volatile memory, such as flash or ROM, so it persists even when power is removed, unlike software running purely in RAM. It ranges from very simple control code in a basic appliance to more elaborate firmware that boots an embedded system, initializes hardware, and hands control to an operating system or application logic. Because firmware sits closest to the hardware, it's responsible for tasks like reading sensor inputs, driving actuators or displays, and managing communication interfaces — the core behavior of devices ranging from routers and printers to IoT sensors and consumer electronics. On more capable devices, firmware may run under a real-time operating system (RTOS), while simpler devices may run firmware as the entire program with no separate OS layer at all. Manufacturers periodically release firmware updates to fix bugs, patch security vulnerabilities, or add features, and unlike regular application updates, a failed or interrupted firmware update can sometimes leave a device unusable, which is why update processes for firmware are typically more cautious than for ordinary software.
Key Concepts
- Stored in non-volatile memory so it persists without power
- Provides the lowest-level instructions controlling hardware behavior
- Bridges raw hardware components with higher-level software or an OS
- Can range from minimal control code to a full embedded application
- Updatable in many devices, though updates carry more risk than app updates
- Central to how IoT and embedded devices actually function