news
Debian debates amending architecture support stratagem and current state of Linux architecture support
-
LWN ☛ Debian debates amending architecture support stratagem
The Linux kernel supports a large number of architectures. Not all of those are supported by Linux distributions, but Debian does support many of them, officially or unofficially. On October 26, Bastian Blank opened a discussion about the minimum version of these architectures that Debian should support: in particular, raising the de-facto minimum versions in the next Debian release ("forky"). Thread participants were generally in favor of keeping support for older architecture variants, but didn't reach a firm conclusion.
Blank noted that Debian doesn't currently have a policy for which architecture versions should be supported. Three architectures do specify a minimum version of GCC, which in turn implies some limits on architecture versions: Arm CPUs must be armv7-a+fp or newer, 32-bit x86 CPUs must be i686 or newer, and s390 CPUs must be z196 or newer. (Version z196 is followed, naturally, by z114, then by zEC12, zBC12, and z13. Since z13, IBM has continued counting with the same numbers that everyone else uses.) These architectures are all fairly old.
-
LWN ☛ 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.