Firmware is software that provides basic machine instructions that allow the hardware to function and communicate with other software running on a device. Firmware provides low-level control for a device's hardware. It is used to run user programs on the device and can be thought of as the software that enables hardware to run.