Linuxマシンで「uname -a」の出力が次のように報告されます。
[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のmanページによると、エントリ「i686 i686 i386」は次のことを示します。
追加情報:
[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>
これらの3つのエントリ( "i686 i686 i386")を区別するにはどうすればよいですか?
要するに、ハードウェアプラットフォーム(uname -i
)==> OSタイプ。 32ビットまたは64ビット。 32ビットOSでコードをコンパイルするために必要なパッケージとプラグインをインストールし、それを64ビットOSに変更すると、問題が発生する場合があります。したがって、これらの32ビットOS依存プラグインを削除するか、32ビットOS自体をそのまま使用してください。
機械 (uname -m
)===>プロセッサが組み込まれているマザーボードと考えてください。
プロセッサー(uname -p
)==> CPUアーキテクチャ。命令セットによって異なります。
重要なこと:
マシンとプロセッサは同じである必要があります。 32ビットまたは64ビットのいずれかで、違いはありません。
ハードウェアプラットフォームは、マシンおよびプロセッサと同じかそれより低くなければなりません。
プロセッサーのタイプ(または名前)は、どのアーキテクチャーをプロセッサーにしたかを示します。
ハードウェアマシン名は、プロセッサタイプと互換性がある必要があります。つまり、プロセッサタイプと同じタイプでなければなりません。
そして最後に、ハードウェアプラットフォームとは、ハードウェアが処理に使用する命令全体を指し、プロセッサタイプよりも高いバージョンである必要はありません。
たとえば、i386プロセッサではi686セットの命令を実行できません。
i686は64ビットプロセッサとアーキテクチャを指しますが、プラットフォームを指します。これは、x686またはx86_64の両方を意味し、命令チャネル(64ビット)を指します。
i386 = 32ビット