Why does this happen? Everything else printable with
uname is shown.
I am not looking into fixing this. Even the manual page of
uname says that it's a common output.
I just want to know why.
POSIX doesn't define
-i. In GNU
coreutils they are marked as non-portable, as you indicate; the default implementation relies on two optional operating system features, the three-argument form of
sysinfo(2) (from SunOS) and the six-argument form of
sysctl(3) (from the BSDs; neither of which are available on Linux).
Thus on Debian and derived distributions (apart from Ubuntu and its derivatives), you simply get
On Fedora and related distributions,
uname is patched to return the machine type (
-m) as processor (
-p) and hardware platform (
-i), with the latter tweaked to produce
i386 for any value of the form
On Ubuntu and derivatives, a variant of the Fedora patch is used, which additionally checks for AMD CPUs on
i686 processors and produces
info page, it is more detailed:
Print the hardware platform name (sometimes called the hardware implementation). Print ‘unknown’ if the kernel does not make this information easily available, as is the case with Linux kernels.
Print the processor type (sometimes called the instruction set architecture or ISA). Print ‘unknown’ if the kernel does not make this information easily available, as is the case with Linux kernels.