3

I was just going through uname and found that -m and -p gave same result, but -i returns a different result. What is the difference between i686 and i386 ?

$ uname -mpi gives i686 i686 i386.

2 Answers 2

1

Not much of an answer but...

uname -mpi gives:

On my (64bit) i7 intel xenial system: x86_64 x86_64 x86_64

On my Ubuntu BQ Aquaris m10 tablet aarch64 aarch64 aarch64

On an qemnu-arm emulated system armv7l armv7l armv7l

On a 32 precise system i686 i686 i386

The man page on xenial says

       -m, --machine
              print the machine hardware name

       -p, --processor
              print the processor type (non-portable)

       -i, --hardware-platform
              print the hardware platform (non-portable)

while the precise man page says

   -m, --machine
          print the machine hardware name

   -p, --processor
          print the processor type or "unknown"

   -i, --hardware-platform
          print the hardware platform or "unknown"

this gnu manual page provides a little more info:

processor Print the processor type (sometimes called the instruction set architecture or ISA). Print ‘unknown’ if this information is not available. Note this is non-portable (even across GNU/Linux distributions).

machine Print the machine hardware name (sometimes called the hardware class or hardware type).

hardware-platform Print the hardware platform name (sometimes called the hardware implementation). Print ‘unknown’ if this information is not available. Note this is non-portable (even across GNU/Linux distributions).

It kind of makes sense that hardware-platform says i386 as that was (I believe) the first 32bit x86 processor. (and all subsequent 32bit x86 processors were compatible with it)

I guess (non-portable) means that it might not give a sensible answer on some platforms - so for my usage I think I'm sticking with uname -m

0
-p == central processor
-m == mainboard (housing the periphery parts the cpu needs to be able to work)
-i == architecture the OS was compiled against

x86 refers to the 32bit intel processor architecture, of which i386 and i686 are different processor family members, that implement the same architecture but have different feature sets. As long as newer families are backwards-compatible, they belong to the same architecture.

Depending which processor architecture specification cpu / mainboard / OS are (literally) built against, you have a different CPU instruction set you can use.

Since in your case your cpu and your board support the same instruction set that your operating system uses, and your OS doesn't use features your hardware does not support, you have no issues.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .