List of Linux supported computer architectures

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Linux kernel booting

At least basic components of the Linux family of operating systems, like Linux kernel or GNU C Library or BusyBox or forks thereof like μClinux and uClibc, have been programmed with a certain level of abstraction in mind. Furthermore there are distinct code paths in Assembly language or C, which support certain hardware. Therefore the source code can be successfully compiled on (or cross-compiled for) a great number of computer architectures, including:

Further required free and open-source software with respective support for the hardware, the operating system is intended to be executed on, has also been developed: compilers are available, e.g. GNU Compiler Collection (GCC) and LLVM/Clang. For cross-compilation, a number of complete toolchains are available, like GNU toolchain, OpenWrt Buildroot or OpenEmbedded. The Yocto Project is targeted at embedded use cases.

The section Linux kernel#Portability of that article should contain information and references to technical details.

Please note, that further components like a display server, or programs like Blender, can be present or absent. Fundamentally any software has to be ported, i.e. specifically adapted, to any kind of hardware, it is supposed to be executed on. The level of abstraction that has been kept in mind while programming that software in the first place, dictates the necessary effort.

The relevant term is of the porting target is computer architecture; it comprises the instruction set(s) and the microarchitecture(s) of the processor(s), at least of the CPU. The target also comprises the "system design" of the entire system, be it a supercomputer, a desktop computer or some SoC, e.g. in case some unique bus is being used. In former times, the Memory controller was part of the chipset on the motherboard and not on the CPU-die.

The support of a specific instruction set is rather the task of the compiler, though the software that is to be compiled with it, requires to be written with a certain level of abstraction in mind to make this possible. Any code written in Assembly language is of course specific to the instruction set.

The support of a specific microarchitecture includes optimizations for the CPU cache hierarchy, the TLB, etc.


Additional processors (particularly Freescale's 68000 and ColdFire) are supported by the MMU-less μClinux variant.

See also[edit]


External links[edit]