$linuxjunkies
>

embedding

also: embedded Linux, embedded systems

Embedding refers to including or integrating one system, application, or codebase into another as a dependent component, rather than running it standalone. In Linux contexts, it commonly means building a minimal Linux system into a device or application.

Embedding in Linux typically involves creating a stripped-down, optimized version of the Linux kernel and minimal userspace tools for deployment on devices with limited resources—such as routers, IoT devices, smartwatches, or industrial controllers. This differs from general-purpose Linux distributions that include extensive tools and libraries.

A common example is embedding Linux in a home router: instead of a full desktop OS, developers compile only the kernel, a minimal C library (like musl), basic networking utilities, and a web interface needed for router management. This keeps the footprint small and boot times fast.

Embedding also refers to integrating libraries or interpreters into applications—for example, embedding Lua or Python in a game engine, or embedding SQLite directly in an application rather than requiring a separate database server.

Tools like Buildroot, Yocto, and OpenWrt are specialized Linux build systems designed specifically for creating embedded systems, automating cross-compilation and customization.

Related terms