Hardware makers use embedded software to control the functions of various hardware devices and systems. Embedded software controls device functions in the same way that a computer’s operating system controls the function of software applications. Almost any device can contain embedded software – from those so simple you might not imagine they had computer control, like toasters and light bulbs, to complex tracking systems in missiles.
Embedded software is used to control the limited, set functions of hardware devices and doesn't generally need input; it is not typically worked with directly by users. Its functions are activated by external controls, either external actions of the device itself or remote input. The device may have communication links to other devices for functionality or in case the device needs to be adjusted, calibrated or diagnosed. It is also through these connections that someone might attempt embedded system hacking.
Embedded software varies in complexity as much the devices it is used to control. Although the term is often used interchangeably with firmware, embedded software is often the only computer code running on a piece of hardware, while firmware, in contrast, hands over control to an operating system that in turn launches and controls programs.