내 Linux ARM 32 또는 64 비트입니까?

uname -m의 결과를보고 OS가 32인지 또는 64 비트이지만 ARM에서는 다음을 제공합니다.

armv7l 

다음에서 추론했습니다.

file /usr/bin/ls 

32 비트 OS를 사용하고 있지만이를 더 쉽게 알 수있는 방법은 무엇입니까?

댓글

  • arm 7은 32 비트입니다. . ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic. — wikipedia
  • @richard 그렇게 생각했는데 64 비트 변형의 이름은 무엇입니까?
  • I ' ARM 머신에 액세스 할 수 없지만 uname -agcc -v? 도움이 될 수 있습니다.
  • Announced October 2011, ARMv8-A (often called ARMv8 although not all variants are 64-bit such as ARMv8-R) represents a fundamental change to the ARM architecture. It adds a 64-bit architecture, named "AArch64", and a new "A64" instruction set. AArch64 provides user-space compatibility with ARMv7-A ISA, the 32-bit architecture, therein referred to as "AArch32" and the old 32-bit instruction set, now named "A32" ARM announced their Cortex-A53 and Cortex-A57 cores on 30 October 2012. en.wikipedia.org/wiki/ARM_architecture#64.2 F32-bit_architecture
  • Arm은 32 비트 CPU 중 마지막으로 64 비트를 사용했습니다 (사망 한 CPU 제외). 대부분은 64 비트를 갔다가 마케팅 불량으로 사망했습니다. etter 충분합니다. 64 비트를 추가 한 것은 AMD 였지만 Intel x86은 두 번째였습니다.

Answer

64 비트 지원 CPU에서 32 비트 또는 혼합 운영 체제를 실행할 수 있기 때문에 여러 단계가 있습니다. 자세한 논의는 64 비트 커널, 그러나 모든 32 비트 ELF 실행 프로세스 실행 프로세스를 참조하십시오. 자세한 내용은 x86 용으로 작성되었지만 대부분 적용됩니다. 준비).

/proc/cpuinfo에서 프로세서 모델을 찾을 수 있습니다. 예 :

$ cat /proc/cpuinfo Processor : ARMv7 Processor rev 10 (v7l) 

ARMv7 (이하)은 32 비트입니다. ARMv8 에는 64 비트 명령어 세트가 도입되었습니다.

시스템이 64 비트 바이너리를 지원하는지 확인하려면 커널 아키텍처를 확인하세요. :

$ uname -m armv7l 

64 비트 프로세서에서는 armv8 (또는 그 이상)로 시작하는 문자열이 표시됩니다. ) uname 프로세스 자체가 32 비트 프로세스 인 경우, 또는 “64 비트 프로세스 인 경우 aarch64. ( https://stackoverflow.com/questions/45125516/possible-values-for-uname-m 참조)

댓글

  • 나는 ' 귀하의 답변에 이의를 제기하지 않지만, 안타깝게도 android는 LINUX이므로 로컬에 표시하고 읽을 수없는 명령이 있다고 가정합니다. 일부 페이지의 문서
  • @THESorcerer Android는 Linux 커널을 사용하지만 Linux 시스템이 아닙니다. Linux 사용자 랜드 도구가 없습니다 (매우 작은 하위 집합 만). Android에서는 64 비트 지원이 기본 OS에서 일관 적이라고 생각하므로 cat /proc/$$/maps는 시스템이 adb 명령 줄에서 64 비트인지 32 비트인지 알려줍니다.
  • ARMv8 (CRC, 선택적 Crypto 없음) 인 Raspberry Pi 3는 ARMv8에도 불구하고 armv7l를보고합니다. 따라서 ' 잘못된 CPU가보고 될 것이라고 확신합니다.
  • @jww armv7l를보고하면 32 비트 커널을 실행하고 있음을 ' 의미합니다. 64 비트 CPU에서 32 비트 커널을 실행할 수 있습니다. CPU에 대한 정보를 확인하려면 /proc/cpuinfo를 읽어보세요.
  • uname -m은 " aarch64

    . / proc / cpuinfo는 ' 항상 프로세서 이름을 포함하지 않습니다.

Answer

richard가 지적했듯이 armv7 변형은 모두 32 비트이므로 중복 라벨이 없습니다. armv7-32 등.

리눅스 시스템에서는 확실하지는 않지만 일반적인 실행 파일을 검사하여 쉽게 확인할 수 있습니다.

> which bash /bin/bash > file /bin/bash /bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ... 

64 비트 시스템에서 32 비트 실행 파일을 실행할 수 있기 때문에 “확실하지 않음”이라고 말합니다.

/proc 또는 /sys; /proc/cpuinfo의 출력은 몇 가지 중요한 단서를 제공 할 수 있습니다 . 어떤 이유로 자동 검사가 필요한 경우 “모델 이름”필드에 매핑 된 테이블을 만드는 것은 잠재적으로 건전한 방법처럼 보입니다 ( “model”, “cpu family”등을 포함한 다른 필드는 선택 사항으로 보입니다. t는 Broadcom 2708 ARMv6 프로세서에 전혀 표시되지 않습니다).

설명

  • armv7l이 32 비트 맞습니까?
  • @bakalolo 질문과 수락 된 답변을 천천히 읽으십시오.)

답변

“lshw”패키지 설치 .

# lshw ... description: Computer product: Raspberry Pi 3 Model B Rev 1.2 width: 32 bits ... 

답변

비트 수를 확인하는 대부분의 방법은 arm7 = 32 비트는 사실 일 수 있지만

pi@rpi9:~ $ getconf LONG_BIT 32 

그리고 cpu 모델을 찾고 싶다면 일반적으로 arch를 사용합니다

p>

root@rpi4:~# tr "\0" "\n" </proc/device-tree/model;arch Raspberry Pi Model B Rev 2 armv6l pi@rpi9:~ $ tr "\0" "\n" </proc/device-tree/model;arch Raspberry Pi 3 Model B Rev 1.2 armv7l 

댓글

  • getconf LONG_BIT는 매우 간단합니다.

답변

다음을 시도해보세요.

 // -*- compile-command: "gcc -Wall -o sizeof sizeof.c && ./sizeof" -*- #include <stdio.h> #include <limits.h> #define size(t) { t x; printf("%s:\t%3lu bit\n", #t, CHAR_BIT * sizeof x); } int main (int argc, char *argv[]) { size(char); size(short); size(int); size(long); size(void*); return 0; }  

주소 크기는 void*입니다.

댓글

를 반환합니다.

. 잘못된 형식 지정자를 사용하면 정의되지 않은 동작이 호출되고

  • void *의 크기는 ' 아키텍처 비트 너비와 반드시 일치하지는 않습니다. x32 ABI sites.google.com/site/x32abi
  • 마찬가지로 getconf -a | grep LONG_BIT
  • 이것은 ' 컴파일러 <의 특성 이외의 다른 정보를 알려주지 않습니다. / i>.
  • 답변

    64 비트 컴퓨터가 아닙니다. Allwinner H8입니다. , 마녀는 더블 ARM-7입니다. 8 코어, 64 비트, powervr, sgx 544, 배속 (700mhz).

    아니요, 64 비트도 가능합니다. OS 만 32 개일 수 있습니다.

    댓글

    • Allwinner H8을 사용하는 OP '는 어디에서 발견 되었나요? 아키텍처는 armv7l이며 이는 분명히 64 비트
    • ' 세 번째를 사용하는 대신 시스템 내에서 원하는 정보를 찾는 방법을 보여주는 것이 좋습니다. -외부 소스의 파티 정보입니다. 이것은 답변 (따라서 모든 반대 투표)보다 댓글에 더 적합합니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다