17

My Linux machine reports "uname -a" outputs as below:

[root@tom i386]# uname -a
Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 GNU/Linux
[root@tom i386]#

As per man page of uname, the entries "i686 i686 i386" denotes:

  • machine hardware name (i686)
  • processor type (i686)
  • hardware platform (i386)

Additional information:

[root@tom i386]# cat /proc/cpuinfo

<snip>
vendor_id    : GenuineIntel
CPU family   : 6
model        : 15
model name   : Intel(R) Xeon(R) CPU            5148  @ 2.33 GHz
stepping     : 6
CPU MHz      : 2328.038
cache size   : 4096 KB
</snip>

How to differentiate between these three entries ("i686 i686 i386") ?

2
  • What I am trying to understand is what is the difference between these terms? Aren't they refer to same? If my processor type is i386 then machine hardware and hardware platform should also be i386?
    – Adil
    Sep 3, 2012 at 13:49
  • 1
    I'm getting the exact same info as you are, and it is just as unclear :) Did you manage to find the answer elsewhere?
    – randunel
    Dec 24, 2013 at 22:14

3 Answers 3

8

In short Hardware platform (uname -i ) ==> OS type. 32 bit or 64 bit. May situation arrives once you have installed packages and plugins required for compiling code with 32 bit OS and now you want to change it to 64 bit OS, problem may come. So better remove those 32bit OS dependent plugins or stay with 32 bit OS itself.

Machine (uname -m)===> Think as a Motherboard, over which processor is built.

Processor (uname -p)== > CPU architecture, depends on the instruction set.

Important thing:
Machine and processor should be same. Either 32 bit or 64 bit, not different.

Hardware Platform must be same or lower than Machine and processor .

2

The processor type (or name) refers for what architecture has been made the processor.

The hardware machine name must be compatible with the processor type, in other words, must be the same type as the processor type.

And finally, the hardware platform refers to the whole instructions that the hardware uses to process and which it musn't be a higher version than the processor type.

You can't run a i686 set of instructions in a i386 processor for example.

i686 is refered to the 64 bits processors and architectures but referred to the platform, it means both x686 or x86_64, referred to the instructions channel (64 bits).

i386 = 32 bits

1
  • 2
    i686 is not 64bit system, see Wikipedia
    – jarno
    Apr 30, 2016 at 7:13
-1

using following option you can differentiate between these three entries ("i686 i686 i386") .

[root@tom i386]# uname -a
Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 
GNU/Linux
[root@tom i386]#uname -m;                -->machine hardware name
i686
[root@tom i386]#uname -p;                -->processor type
i686
and last one is  hardware platform(i386).
1
  • 1
    No I am not asking about command option. My question is what is the difference between these terms? Aren't they refer to same? If my processor type is i386 then machine hardware and hardware platform all are same and i386?
    – Adil
    Sep 3, 2012 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.