The current state of Linux architecture support
There have been several recent announcements about Linux distributions changing the list of architectures they support, or adjusting how they build binaries for some versions of those architectures. Ubuntu introduced architecture variants, Fedora considered dropping support for i686 but reversed course after some pushback, and Debian developers have discussed raising its architecture baseline for the upcoming Debian 14 ("forky"). Linux supports a large number of architectures, and it's not always clear where or by whom they are used. With increasing concerns about diminishing support for legacy architectures, it's a good time to look at the overall state of architecture support on Linux.
The 6.17 kernel supports 21 different architectures (perhaps soon to be 22, thanks to the recent WebAssembly port), but making that statement already requires going into a bit more detail on what counts as an architecture. For example, Linux supports the User Mode Linux "architecture", which lets the kernel run as an unprivileged process inside an existing kernel for testing purposes. By most normal definitions, User Mode Linux isn't really a CPU architecture, even if the code for it lives alongside the kernel's other architecture support code. On the other hand, the kernel considers all PowerPC CPUs to be one architecture, regardless of whether they're running in big-endian or little-endian mode; most distributions count those as two architectures because software compiled for different endiannesses must be packaged separately. Even without architecture-wide incompatibilities like that, several architectures also offer different "levels" or optional extensions that make describing a piece of software's requirements a bit difficult. RISC-V has, at the time of writing, 48 different standards adding a larger number of extensions.
Still, the kernel's list of supported architectures is the closest thing to a definitive list of what counts as an architecture in the Linux world. Using that as a baseline, I checked the status of support in several popular distributions. The most restrictive is Arch, which only supports x86_64. Close behind is Fedora, which only has two main architectures and three secondary ones. Debian supports the second-most architectures, with six or seven officially supported architectures and something like 11 unofficial ones, depending on how one counts. Gentoo offers official installers for 13 architectures. Ubuntu is somewhere in between, with five official architectures and a vague suggestion that it may work on Debian's unofficial architectures as well.
The distinction between official and unofficial support is a bit fuzzy. In practice, a lot of software packaged by the different distributions will compile fine on unsupported architectures, provided an appropriate compiler is available. In Debian's case, official support means that it is part of the official release, it has been tested, and it will receive security updates. Unofficial architectures may be released on a delayed schedule, may have to deal with breaking changes, and might be dropped in between major versions if there are no volunteers to keep things working. For Fedora, a primary architecture is one where build failures on Koji, Fedora's package build farm, block the release process. Secondary architectures might also cause build failures on Koji, or might have their own separate package-build infrastructure, but failures don't stop the release.
Rust, which has been cited as a cause for concern around ensuring continuing support for old architectures, supports 14 of the kernel's 20-ish architectures, the exceptions being Alpha, Nios II, OpenRISC, PARISC, and SuperH. The discussion around Rust's architecture support was recently reinvigorated by the fact that Debian's APT packaging tool will require Rust after May 2026. The project offers different tiers of support for various architectures, ranging from tier one (continuously tested and has official releases), through tier two (builds but does not have dedicated tests), to tier three (code is present to handle it, but support isn't being tested automatically).
A well-formatted table is worth a thousand words, so here is one summarizing the current state of architecture support on Linux:
| Architecture | Commercially available | In kernel since | Minimum supported in kernel | Debian | Ubuntu | Fedora | Rust |
|---|---|---|---|---|---|---|---|
| Alpha | 1992-2007 | 1994 | EV56+ | Unofficial | - | - | - |
| ARC | 1996- | 2013 | ARC600 | - | - | - | - |
| Arm (32-bit) | 1985- | 1998 | ARMv4 | ARMv5 (forky increases this to ARMv7-A+VFPv3D16) | - | - | Tier 2 |
| Arm (64-bit) | 2011- | 2012 | ARMv8-A+ | Official | Official | Official | Tier 1 |
| C-SKY | 2017- | 2018 | v1 | - | - | - | v2+, Tier 3 |
| Hexagon | 2006- | 2011 | V2+ | - | - | - | Tier 3 |
| LoongArch | 2021- | 2022 | N/A | Unofficial | - | - | Tier 2 |
| m68k | 1979- | 1996 | 68000+ | Unofficial* | - | - | Tier 3 |
| MicroBlaze | 2002- | 2009 | v3.00.a+ | - | - | - | - |
| MIPS | 1985- | 1995 | mips1+ | - | - | - | Tier 3 |
| Nios II | 2000-2023 | 2014 | r1+ | - | - | - | - |
| OpenRISC | 2000- | 2011 | OR1k | - | - | - | - |
| PA-RISC | 1986-2008 | 2000 | 1.1+ | Unofficial [edited] | - | - | - |
| PowerPC (32-bit) | 1992-2021 | 1995 | ppc8xx, ppc603, or better | Unofficial, big-endian | - | - | Tier 2 |
| PowerPC (64-bit) | 1997- | 2002 | powerpc970+ | Little-endian, officially; big-endian unofficially; version 8 or newer (proposed to raise to 9) | - | Little-endian; version 8 or newer | Tier 2 |
| RISC-V | 2014- | 2017 | It's complicated | Official | Official | Official | Tier 2 |
| s390 | 1965- | 2000 | z10+ | Official (z196; proposed to raise to z15) | Official | Official | Tier 2 |
| SPARC | 1986- | 1994 | v8+ | Unofficial | - | - | Tier 2 |
| SuperH | 1992-2025 | 1999 | SH-2 (with no MMU) or SH-3 (with a MMU) | Unofficial | - | - | - |
| x86 (32-bit) | 1985- | 1991 | i486+ | User-space only (i686+) | User-space only | User-space only | Tier 1 |
| x86_64 | 2003- | 2003 | All | Official (raising baseline to v2 proposed) | Official (both v2 and v3) | Supported (all versions) | Tier 1 |
| Xtensa | 1999- | 2005 | N/A | - | - | - | Tier 3 |
Looking at this table, a few things are immediately clear. For one, the Debian project is doing a lot of work to ensure older CPUs remain usable. For another, the only architectures that are supported by Debian but not Rust are Alpha (for which no new CPUs have been produced since 2007), and SuperH. It might be tempting to assume that this means concerns about Rust compatibility are overblown, but it would be more accurate to say that people working with unpopular CPU architectures are probably not using mainstream Linux distributions.
In Arnd Bergman's OSS EU talk this year, he said that some of these architectures, primarily 32-bit Arm, are being kept alive for embedded development. New hardware is still being produced with 32-bit Arm CPUs, so he expects the kernel to support that configuration for at least ten years. The kernel still supports over a dozen 32-bit architectures that are used in older embedded systems, but their 64-bit replacement designs have almost exclusively moved to Arm and RISC-V, he said.
The Linux kernel's support for many architectures is both a strength — allowing it to be deployed in a huge number of possible use cases — and a source of complexity for maintainers. The kernel's memory-management code is particularly prone to architecture-induced special cases. For now, the kernel supports many more architectures than the mainstream distributions that depend on it do. If embedded uses continue to adopt RISC-V, however, that might not be the case in another few decades.
Appendix: Architecture information
Many of the architectures listed above were unfamiliar to me, so it was hard to imagine who might be using them. Below are brief descriptions of each architecture supported by the kernel, for context.
Alpha
Supported by: Debian (unofficially).
Introduced by DEC in 1992, Alpha is a 64-bit RISC architecture. The underlying intellectual property was sold to Compaq in 1998, which didn't do much with it until Hewlett-Packard purchased the company in 2002. The last Alpha-based systems were sold in 2007.
The kernel has supported Alpha since version 1.1.67 in 1994, making it the first non-x86 port. Alpha support is still kept up to date by Richard Henderson and Matt Turner. Debian officially supported Alpha between versions 2.1 and 5.0, and the port is still maintained unofficially.
ARC
Arc processors were first introduced in 1996, although support only reached the kernel in 2013. The kernel only supports 32-bit ARC CPUs; 64-bit support has not made it upstream so far. Work is continuing, though. The primary manufacturer of ARC CPUs, Synopsys, has largely pivoted to RISC-V designs, but ARC CPUs are still available. Support in the kernel is maintained by Vineet Gupta.
Arm
Supported by: Debian, Ubuntu, Fedora.
Arm is a considerably older architecture, dating from 1985. Despite its age, it has continued evolving and specifying different compatibility levels. Debian and Ubuntu both only support it when the CPU has built-in hardware for processing floating point numbers, but, as that is the typical configuration for Arm CPUs outside of embedded development, that doesn't pose any great hardship.
The kernel has supported Arm CPUs since version 2.1.80 in 1998, but the CPU version required has increased over time. Debian currently requires at least "armv7-a+fp": version 7-A, with floating point support. The kernel theoretically still compiles with GCC version 8, which in turns supports Arm version 2, but the kernel has deprecated anything earlier than Arm version 4. That release added support for half-word loads and stores, and removed support for 26-bit addressing.
C-SKY
C-SKY v1 CPUs are compatible with Motorola M·CORE, which have been available since 1997, but the first C-SKY-branded CPUs were released in 2017. C-SKY is the second most recent architecture added to the kernel. It was introduced in 2018, in version 4.20. At the time, Bergman said that it might well be the last architecture ever added to the kernel, since newer designs seem to be focusing on RISC-V, which the kernel already supports. That prediction did not prove to be correct, however, with LoongArch being added to the kernel in 2022. C-SKY is a 32-bit architecture that is not much used outside of China, where it is produced by a company of the same name.
Hexagon
Unlike the other architectures in this list, Hexagon is the architecture of a family of digital signal processors from Qualcomm. First introduced in 2006, support was added to the kernel in 2011, where it is maintained by Brian Cain. Hexagon is notable for having a number of features dedicated to hardware-assisted parallelism.
LoongArch
Supported by: Debian (unofficially).
LoongArch is the newest architecture supported by the kernel, arriving in 2022. It is a RISC architecture quite similar to MIPS, although newer architecture revisions have been adding more custom instructions. The company that created it, Loongson, uses it in high-performance, multi-core servers; its previous lower-power CPUs used MIPS. Kernel support is maintained by Huacai Chen.
m68k
Supported by: Debian (unofficially).
Motorola 68000, usually abbreviated m68k, is a big-endian 16- or 32-bit architecture originally released in 1979. It was discontinued in 1996 — ironically, the same year that support first appeared in the kernel, in version 1.3.94. It is maintained in the kernel by Geert Uytterhoeven. The unofficial Debian port runs on the original m68k CPUs, but not the newer coldfire CPUs.
This architecture is notable for powering several early home computers and portable computing devices, including early Apple Macintoshes, Commodore Amigas, the Atari ST, the Sega Genesis, the AT&T UNIX PC, the NeXTstation, TI-89 calculators, and the Palm Pilot. Because of its extremely wide use, m68k is likely to continue being supported, one way or another, by folks passionate about that era of hardware.
MicroBlaze
MicroBlaze is a CPU core design intended for embedding in a field-programmable gate array. It was introduced in 2002, with support coming to the kernel in 2009. Support in the kernel is maintained by Michal Simek. The kernel has, so far, supported only the 32-bit version of the CPU. 64-bit support exists out-of-tree, but is unlikely to be merged in the future because the company behind MicroBlaze, Xilinx, has moved on to RISC-V designs.
MIPS
MIPS was released in 1985. Since then, it has received regular updates, the most recent of which was version 6 in 2014. Linux has supported it since version 1.1.82 in 1995. Even though the architecture is regularly updated (and the oldest processors for it have fallen out of their patent period), no major Linux distribution maintains a port. The overall maintainer for MIPS in the kernel is Thomas Bogendoerfer, but there are a large number of other maintainers who work on specific chips, drivers, and other components of MIPS support.
Nios II
A 32-bit RISC CPU intended for embedded use in field-programmable gate arrays (FPGAs), Nios II has been supported in the kernel since 2014, where it is maintained by Dinh Nguyen. Intel deprecated the design in 2023 in favor of a RISC-V-based successor. Nios II is interesting because it was implemented entirely in programmable logic, meaning that the CPU could be extended with custom instructions or peripherals that were programmed directly into the same FPGA.
OpenRISC
OpenRISC is a project to develop an open-source CPU; the design of the OpenRISC 1000 CPU is available under a GPL license. It was introduced in 2000, with support in the kernel introduced in 2011. It is maintained by Jonas Bonn, Stefan Kristiansson, and Stafford Horne. The OpenRISC web site has links to three different processor implementations and several simulators that can be used to try out OpenRISC code.
PA-RISC
Supported by: Debian (unofficially).
Also known as HPPA, PA-RISC was released in 1986 as a way for HP to consolidate its different computer offerings on the same CPU design. That sort of happened, although HP continued offering some products based on other designs. Support was added to the kernel in 2000, where it is maintained by James Bottomley and Helge Deller.
PowerPC
Supported by: Debian, Ubuntu, and Fedora.
PowerPC is another architecture that supports running in big-endian or little-endian mode; unlike Alpha, SPARC, or MIPS, however, there is good support for actually running Linux on it in either endianness configuration. The architecture was introduced in 1992, and supported in the kernel since version 1.3.45 in 1995, although that support has moved around between a few different architecture names over time. PowerPC code has gone by "ppc", "ppc64", and "powerpc" at various points in the kernel's history (currently the latter). Presently, support for the architecture is maintained by Madhavan Srinivasan and Michael Ellerman.
Debian supports little-endian 64-bit PowerPC officially, and has two different unofficial ports for 32-bit big-endian PowerPC and 64-bit big-endian PowerPC. The official port seems to require version 8 (released in 2014) or newer hardware, although there is a proposal to increase that to version 9 (released in 2017) for the next Debian release, since Debian's build fleet is all version 9. Ubuntu has official support for both the big-endian and little-endian 64-bit variants, interestingly. That makes big-endian 64-bit PowerPC the only architecture that Ubuntu supports officially that Debian does not. Fedora restricts itself to supporting little-endian 64-bit PowerPC.
RISC-V
Supported by: Debian, Ubuntu, and Fedora.
RISC-V is an interesting architecture because, while it has taken some time to get going, there are a large number of implementations with different targeted use cases in development at the moment. It's also notable for having a large number of optional extensions that can be implemented independently. On the one hand, this makes it possible for the same architecture to scale from low-power embedded cores to high-performance server CPUs. On the other hand, it makes testing software more difficult. Since the extensions can be implemented independently, there isn't a simple way to agree on a baseline for support beyond just listing extensions. Kernel support was added in 2017, and is maintained by Paul Walmsley, Palmer Dabbelt, and Albert Ou.
s390
Supported by: Debian, Ubuntu, and Fedora.
IBM's System/390 mainframes, with their custom microprocessors, are surprisingly well-supported by modern Linux. The base design of the architecture dates from the s/360 in 1965, but the first mainframes theoretically capable of running Linux were introduced in 1990. Those mainframes transitioned to a new 64-bit architecture with a different name in 2000, the same year that support was introduced to the kernel in version 2.3.99pre8. Despite the new architecture officially being "z/Architecture", most references call it s390x.
The architecture has continued receiving updates, and Ubuntu requires the relatively recent z15 version, released in 2019. Debian has proposed updating to the same baseline, although the build infrastructure is actually composed entirely of z16 processors. Fedora theoretically supports anything after z13, although the project's documentation on the topic has not been updated in some time.
SPARC
Supported by: Debian (unofficially).
SPARC is an architecture introduced in 1986. Support in the kernel was added in version 1.1.71 in 1994, and is maintained today by David Miller and Andreas Larsson. Debian unofficially supports 64-bit SPARC, but no distribution still supports 32-bit SPARC. A new open-source design for SPARC cores, LEON5, was released in 2019. The kernel supports v8, but that version lacks proper atomics, which can lead to problems. A more practical lower limit would be v8e or v9.
SuperH
Supported by: Debian (unofficially).
SuperH is a 32-bit architecture originally produced by Hitachi and later sold to Renesas. It's notable for being entirely out from under its design patents, which has allowed the architecture to be reverse engineered and reimplemented. Official support from Renesas ended in 2025, so those reimplementations are the only source of new SuperH CPUs.
x86
Supported by: Debian, Ubuntu, Arch, and Fedora.
Released in 1978, and then incrementally updated to larger word sizes in 1985 and 2003, x86 is an extremely popular architecture. It is little-endian, still under active development, and has been supported in the kernel since the beginning. Despite that, the support story is actually not as straightforward as it might appear. Since x86 has evolved over time, there are differences between support for the 32-bit version and the 64-bit version.
Debian supports a full 32-bit installation on CPUs newer than i486Debian supports a 32-bit userspace in some circumstances, but has stopped shipping 32-bit kernels. Ubuntu only supports some 32-bit binaries running in a 64-bit installation. Other distributions are all-in on 64-bit, but still have different baseline architecture versions.Ubuntu recently announced that the project, while continuing to support older versions, would compile separate versions of all packages for x86-64-v3, dating from 2013. Fedora and Arch both support any 64-bit-capable CPU, regardless of version.
Xtensa
Finally, Xtensa is yet another 32-bit RISC architecture. It's specifically designed for extension, with the possibility of configuring many CPU features and adding custom instructions. It is mostly used in digital signal processors.
[ Thanks to Bergman for his help in fact-checking this article. ]
