Field Guide · concept

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

Each stage hands control to the next power-on/ reset ROMfirmware bootloader OS kernel/ app runs first built-in loads & verifies image · can reflash your program boot order (time) →
Booting is a relay of control: power-on starts built-in ROM firmware, which hands off to the bootloader, which loads and verifies the OS or application and jumps to it. The bootloader is the small program in the middle — and because it can also reflash the image, it is how a board updates itself over USB or the air.

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

  1. Bootloader — Wikipedia, on bootloaders and their role at startup. 

See also