64-bit kernels for 64-bit CPUs

It is currently possible to install Debian's i386 (32-bit PC) port, including kernel packages, on a 64-bit capable CPU. Such a CPU is capable of running 32-bit user programs correctly. However:

/!\ A kernel for a 32-bit port will not include workarounds for some CPU bugs and quirks that only affect 64-bit capable CPUs.

A similar issue can exist with armhf (32-bit Arm), though it is more likely that the armhf kernel won't include all the required drivers for a 64-bit Arm platform and so will be obviously unsuitable.

Recommendation

64-bit installation with 32-bit compatibility

We recommend installing Debian's amd64 port on 64-bit PCs, and the arm64 port on 64-bit Arm-based systems.

In case you have some programs that can only run in 32-bit mode, it is possible to add the 32-bit port as a secondary architecture through dpkg's multiarch support, and then install the required library packages from there. For example:

dpkg --add-architecture i386
apt update
apt install libc6:i386

32-bit installation with 64-bit kernel

In case you want to keep an existing 32-bit installation, you can instead add the 64-bit port as a secondary architecture, and then install the kernel package from there. For example:

dpkg --add-architecture amd64
apt update
apt install linux-image-amd64