Full systems on small devices.
WHEN TO USE IT RATHER THAN BARE FIRMWARE
Networking is required A file system is needed Complex software is involved Existing libraries save substantial work
WHAT IT REQUIRES
Substantially more memory and storage than a microcontroller A processor with a memory management unit, generally
WHAT THE COMPONENTS ARE
A bootloader The kernel, with a device tree describing hardware A root file system Init and services Applications
WHAT A DEVICE TREE IS
A description of hardware the kernel reads, rather than hard-coded support.
WHY THAT EXISTS
So one kernel supports many boards.
WHAT BUILD SYSTEMS PROVIDE
Reproducible construction of a complete image from source.
WHAT THEY COST
Substantial build times, and a learning curve.
WHAT TO PLAN FOR
Updates, which must be reliable and recoverable.
WHAT THE STANDARD APPROACH IS
Two system partitions, updating the inactive one and switching, with rollback on failure.
WHY
An update that fails to boot must not require physical access.
WHAT TO MINIMISE
Everything included, since each component must be maintained and patched.