내 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 매뉴얼 페이지에 따르면 "i686 i686 i386" 항목은 다음을 의미합니다.
- 머신 하드웨어 이름(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>
이 세 항목("i686 i686 i386")을 어떻게 구별할 수 있나요?
답변1
간단히 말해서 하드웨어 플랫폼( uname -i
) ==> 운영 체제 유형입니다. 32비트 또는 64비트. 32비트 운영 체제를 사용하여 코드를 컴파일하는 데 필요한 패키지와 플러그인을 설치한 후 이제 이를 64비트 운영 체제로 변경하려고 하면 문제가 발생할 수 있습니다. 따라서 32비트 운영 체제에 의존하는 플러그인을 제거하거나 32비트 운영 체제 자체를 유지하는 것이 좋습니다.
Machine( uname -m
) ===> 프로세서가 내장된 마더보드라고 생각하세요.
프로세서 ( uname -p
) ==> CPU 아키텍처는 명령어 세트에 따라 다릅니다.
중요:
머신과 프로세서는 동일해야 합니다. 32비트든 64비트든 별 차이가 없습니다.
하드웨어 플랫폼은 머신 및 프로세서와 동일하거나 그 이하이어야 합니다.
답변2
프로세서 유형(또는 이름)은 프로세서의 아키텍처를 나타냅니다.
하드웨어 컴퓨터 이름은 프로세서 유형과 호환되어야 합니다. 즉, 프로세서 유형과 동일해야 합니다.
마지막으로, 하드웨어 플랫폼은 하드웨어가 이를 처리하는 데 사용하는 전체 명령 집합을 말하며 프로세서 유형보다 높은 버전이어서는 안 됩니다.
예를 들어 i386 프로세서에서는 i686 명령어 세트를 실행할 수 없습니다.
i686은 64비트 프로세서와 아키텍처를 뜻하지만 플랫폼을 뜻하는데, 이는 명령어 채널(64비트)을 뜻하는 x686이나 x86_64를 뜻한다.
i386 = 32비트
답변3
다음 옵션을 사용하면 이 세 가지 항목("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).