este linux-ul meu ARM pe 32 sau 64 de biți?

sub o informație știu că pot examina rezultatul uname -m pentru a ști dacă sistemul meu de operare are 32 sau 64 de biți, dar sub ARM acest lucru dă:

armv7l 

Am dedus din

file /usr/bin/ls 

că sunt „pe un sistem de operare pe 32 de biți, dar cum pot să știu acest lucru într-un mod mai ușor?

Comentarii

  • arm 7 este 32 de biți . ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic. – wikipedia
  • @richard Bănuiam, dar cum se numește varianta pe 64 de biți?
  • I nu ‘ nu aveți acces la o mașină ARM, dar care este rezultatul uname -a și gcc -v? Acestea ar putea fi utile.
  • 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 a fost ultimul procesor de 32 de biți care a ajuns pe 64 de biți (cu excepția celor care au murit). Majoritatea au ajuns pe 64 de biți și apoi au murit, din cauza marketingului slab – presupunând că fiind b etter este suficient. Intel x86 a fost al doilea care a durat, deși AMD a adăugat 64 de biți.

Răspuns

Acolo sunt mai multe gradații, deoarece puteți rula un sistem de operare pe 32 de biți sau mixt pe un procesor pe 64 de biți. Consultați kernel pe 64 de biți, dar toate procesele executabile executabile ELF pe 32 de biți, cum este? pentru o discuție detaliată (scrisă pentru x86, dar cea mai mare parte se aplică să se înarmeze și).

Puteți găsi modelul procesorului în /proc/cpuinfo. De exemplu:

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

ARMv7 (și mai jos) are 32 de biți. ARMv8 introduce setul de instrucțiuni pe 64 de biți.

Dacă doriți să vedeți dacă sistemul dvs. acceptă binare pe 64 de biți, verificați arhitectura nucleului :

$ uname -m armv7l 

Pe un procesor pe 64 de biți, ați vedea un șir care începe cu armv8 (sau mai sus) ) dacă procesul uname în sine este un proces pe 32 de biți sau aarch64 dacă este un proces pe 64 de biți. (Vezi și https://stackoverflow.com/questions/45125516/possible-values-for-uname-m )

Comentarii

  • Nu ‘ nu contest răspunsul dvs., dar, din păcate, Android ESTE UN LINUX, deci, să presupunem că există o comandă, undeva, care să o afișeze local și să nu citească un documentație pe unele pagini
  • @THESorcerer Android folosește un nucleu Linux, dar nu este un sistem Linux. Nu are instrumente terestre pentru utilizatori Linux (doar un subset foarte mic). Pe Android, cred că suportul pe 64 de biți este coerent în sistemul de operare de bază, așa că cat /proc/$$/maps vă va informa dacă sistemul este pe 64 de biți sau pe 32 de biți dintr-o linie de comandă adb.
  • Cred că Raspberry Pi 3, care este ARMv8 (CRC, fără Crypto opțional), va raporta armv7l chiar dacă ARMv8 este. Deci, ‘ sunt destul de sigur că va fi raportat un procesor greșit.
  • @jww Dacă raportează armv7l, înseamnă că ‘ rulați un kernel pe 32 de biți. Puteți rula un kernel pe 32 de biți pe un procesor pe 64 de biți. Dacă doriți informații despre CPU, citiți /proc/cpuinfo.
  • uname -m returnează doar ” aarch64 „. / proc / cpuinfo ‘ nu conține întotdeauna nici un nume pentru un procesor.

Răspuns

După cum subliniază Richard, variantele armv7 sunt toate pe 32 de biți, deci nu există o etichetă redundantă armv7-32 , etc.

Pe un sistem Linux, puteți verifica cu ușurință, deși nu cu adevărat definitiv, examinând un executabil comun:

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

Spun „nu definitiv” deoarece este posibil să rulați executabile pe 32 de biți pe un sistem pe 64 de biți.

Nu pare să existe nimic infailibil în /proc sau /sys; ieșirea din /proc/cpuinfo poate oferă câteva indicii semnificative. Dacă, dintr-un anumit motiv, aveți nevoie de o verificare automată, crearea unui tabel mapat la câmpul „numele modelului” pare a fi o metodă potențial solidă (alte câmpuri, inclusiv „modelul”, „familia cpu”, etc. arată opțional – ele nu ” Nu apar deloc pentru mine pe un procesor Broadcom 2708 ARMv6).

Comentarii

  • Deci armv7l are 32 de biți nu?
  • @bakalolo Citiți întrebarea și răspunsul acceptat încet;)

Răspuns

Instalați pachetul „lshw” .

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

Răspuns

Se pare că majoritatea modurilor de a vedea numărul de biți este cumva știți că arm7 = 32 biți și în timp ce acest lucru poate fi adevărat, dar ce zici de

pi@rpi9:~ $ getconf LONG_BIT 32 

Și dacă doriți să căutați modelul cpu, în mod normal folosesc arch

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 

Comentarii

  • getconf LONG_BIT este foarte simplu

Răspuns

Încercați următoarele.

 // -*- 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; }  

Dimensiunea adresei este void*.

Comentarii

Răspuns

Nu este „un computer pe 64 de biți. Este un Allwinner H8 , vrăjitoare este un ARM-7 dublu. 8 nuclee, 64 de biți, powervr, sgx 544, la viteză dublă (700mhz).

Deci nu, este capabil să aibă 64 de biți. Doar sistemul de operare ar putea avea 32.

Comentarii

  • unde ați găsit că OP ‘ utilizează Allwinner H8? Arhitectura este armv7l, care în mod clar nu este un Unul pe 64 de biți
  • Este ‘ mai bine să demonstreze o modalitate de a găsi informațiile dorite din în cadrul sistemului în loc să folosiți al treilea -informații despre părți din surse externe. Acest lucru este mai potrivit pentru a fi un comentariu decât un răspuns (deci toate voturile negative).

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *