[linux] 주어진 Linux가 32 비트인지 64 비트인지 확인하는 방법은 무엇입니까?
내가 입력 uname -a
하면 다음과 같은 출력이 나타납니다.
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux
주어진 OS가 32 또는 64 비트임을 어떻게 알 수 있습니까?
configure
스크립트 를 작성할 때 유용 합니다. 예를 들어, 어떤 아키텍처를 구축하고 있습니까?
답변
시도하십시오 uname -m
. 어느 것이 부족 uname --machine
하고 출력합니다.
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
그렇지 않으면 Linux 커널이 아니라 CPU 에 대해 다음을 입력하십시오.
cat /proc/cpuinfo
또는:
grep flags /proc/cpuinfo
“flags”매개 변수 아래에 다양한 값이 표시됩니다. ” / proc / cpuinfo의 플래그는 무엇을 의미합니까? “를 참조하십시오. 그 중 하나의 이름은 lm
다음과 같습니다. Long Mode
( x86-64 : amd64, Intel 64라고도 알려진 64 비트, 즉 64 비트 유능한)
lm ==> 64-bit processor
또는 사용lshw
(언급 한 바와 같이 아래 로 작센의 롤프 없이) sudo
(바로 CPU 폭을 grepping 용) :
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
참고 : 32 비트 커널이 설치된 64 비트 CPU가있을 수 있습니다 .
( ysdx 는 자신의 답변 에서 “현재 요즘 시스템은 다중 아키텍처 가 될 수 있으므로 어쨌든 의미가 없습니다. 컴파일러의 기본 대상을 찾고 싶을 것입니다.”
답변
64 비트 플랫폼을 실행중인 경우 x86_64 또는 uname -a 의 출력에서 매우 유사한 것이 표시됩니다.
특정 머신 하드웨어 이름을 실행하려면
uname -m
전화 할 수도 있습니다
getconf LONG_BIT
32 또는 64를 반환
답변
lscpu
CPU에 관한 다른 정보들 중에서 다음을 나열합니다 :
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
...
답변
쉬운 결정을위한 또 다른 유용한 명령은 다음과 같습니다.
명령:
getconf LONG_BIT
대답:
- OS가 32 비트 인 경우 32
- 64, OS가 64 비트 인 경우
답변
명령
$ arch
에 해당
$ uname -m
하지만 입력하는 속도가 두 배 빠릅니다
답변
데비안 에서 소프트웨어를 빌드하기 위해 특별히 궁금했습니다. 합니다. (설치된 데비안 시스템은 32 비트 커널, 라이브러리 등이있는 32 비트 버전이거나 64 비트 용으로 컴파일 된 64 비트 버전 일 수 있습니다. 32 비트 호환 모드가 아닌 비트).
데비안 패키지 자체는 플랫폼 아키텍처를 포함하여 모든 메타 데이터로 패키지를 실제로 만들 때 (물론) 아키텍처가 무엇인지 알아야합니다. dpkg를 아키텍처 . 여기에는 현재 호스트뿐만 아니라 빌드하도록 구성된 것이 포함됩니다. (일반적으로 이것들은 동일합니다.) 64 비트 컴퓨터에서 출력 예 :
DEB_BUILD_ARCH=amd64
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=x86_64-linux-gnu
DEB_HOST_ARCH=amd64
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=x86_64-linux-gnu
해당 변수 중 하나만 인쇄하거나 dpkg -architecture 에 대한 명령 행 옵션을 사용하여 해당 값에 대해 테스트를 수행 할 수 있습니다 .
dpkg-architecture가 아키텍처를 어떻게 추론하는지 모르겠지만 문서 또는 소스 코드를 볼 수 있습니다 (dpkg-architecture 및 dpkg 시스템의 대부분은 Perl입니다).
답변
#include <stdio.h>
int main(void)
{
printf("%d\n", __WORDSIZE);
return 0;
}