Linux操作系统家族的基本组件如Linux内核、GNU C 函式库、BusyBox，或其复刻如μClinux和uClibc，在编程时已经考虑了一定程度的抽象。此外，在汇编语言或C语言源代码中包含了不同的代码途径，以支持特定的硬件。因此，源代码可以在大量的计算机系统结构上成功编译（或交叉编译）。此外，还开发了必需的自由及开放源代码软件，作为Linux和将要执行Linux的硬件之间的接口。例如，编译器如GCC和LLVM/Clang。对交叉编译来说，则有数个完整工具链，像GNU工具链、OpenWrt Bui