A bootloader is a small program that runs first when a device powers on or resets, then loads and starts the main firmware or operating system.1
Overview
On a desktop the bootloader chain hands off to an OS; on a microcontroller the bootloader is often the only thing between reset and your application. Many MCUs ship with a factory bootloader in ROM that speaks USB DFU, UART, or SPI/I²C, so new code can be loaded without a dedicated programmer. Custom bootloaders add over-the-air (OTA) updates, integrity checks, and fallback to a known-good image if an update fails.
Where it fits
A bootloader is what lets you reflash a board over USB instead of always using in-system programming with an external debugger — the Arduino “press reset, upload sketch” flow is exactly this. In a fielded embedded system it is the safe path for firmware updates, often paired with a watchdog timer so a hung update cannot brick the device.
Sources
-
Bootloader — Wikipedia, on bootloaders and their role at startup. ↩