uname -m
의 결과를보고 OS가 32인지 또는 64 비트이지만 ARM에서는 다음을 제공합니다.
armv7l
다음에서 추론했습니다.
file /usr/bin/ls
32 비트 OS를 사용하고 있지만이를 더 쉽게 알 수있는 방법은 무엇입니까?
댓글
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*
입니다.
댓글
를 반환합니다.
. 잘못된 형식 지정자를 사용하면 정의되지 않은 동작이 호출되고
답변
64 비트 컴퓨터가 아닙니다. Allwinner H8입니다. , 마녀는 더블 ARM-7입니다. 8 코어, 64 비트, powervr, sgx 544, 배속 (700mhz).
아니요, 64 비트도 가능합니다. OS 만 32 개일 수 있습니다.
댓글
- Allwinner H8을 사용하는 OP '는 어디에서 발견 되었나요? 아키텍처는 armv7l이며 이는 분명히 64 비트
- ' 세 번째를 사용하는 대신 시스템 내에서 원하는 정보를 찾는 방법을 보여주는 것이 좋습니다. -외부 소스의 파티 정보입니다. 이것은 답변 (따라서 모든 반대 투표)보다 댓글에 더 적합합니다.
ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic.
— wikipediauname -a
및gcc -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