est mon Linux ARM 32 ou 64 bits?

sous un Intel Je sais que je peux regarder le résultat de uname -m pour savoir si mon système dexploitation est de 32 ou 64 bits, mais sous ARM cela donne:

armv7l 

Jai déduit de

file /usr/bin/ls 

que je « m sur un OS 32 bits, mais comment puis-je le savoir plus facilement?

Commentaires

  • arm 7 est 32 bits . ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic. – wikipedia
  • @richard Je le devinais, mais alors quel est le nom de la variante 64 bits?
  • I don ‘ t avoir accès à une machine ARM mais quelle est la sortie de uname -a et gcc -v? Cela pourrait être 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 été le dernier processeur 32 bits à passer à 64 bits (à lexclusion de ceux qui sont morts). La plupart sont passés à 64 bits, puis sont morts en raison dun marketing médiocre – en supposant que ce soit b etter suffit. LIntel x86 était lavant-dernier, bien que ce soit AMD qui a ajouté 64 bits.

Réponse

Là sont plusieurs gradations, car vous pouvez exécuter un système dexploitation 32 bits ou mixte sur un processeur compatible 64 bits. Voir noyau 64 bits, mais tous les processus exécutables ELF 32 bits en cours dexécution, comment est-ce? pour une discussion détaillée (écrite pour x86, mais la plupart sapplique armer également).

Vous pouvez trouver le modèle de processeur dans /proc/cpuinfo. Par exemple:

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

ARMv7 (et inférieur) est 32 bits. ARMv8 présente le jeu dinstructions 64 bits.

Si vous voulez voir si votre système prend en charge les binaires 64 bits, vérifiez larchitecture du noyau :

$ uname -m armv7l 

Sur un processeur 64 bits, vous « verriez une chaîne commençant par armv8 (ou au-dessus ) si le processus uname lui-même est un processus 32 bits, ou aarch64 sil « sagit dun processus 64 bits. (Voir aussi https://stackoverflow.com/questions/45125516/possible-values-for-uname-m )

Commentaires

  • Je ne conteste ‘ pas votre réponse, mais malheureusement, Android EST UN LINUX, donc, il suppose quil y ait une commande, QUELQUE PART qui laffiche localement et ne pas lire un documentation sur une page
  • @THESorcerer Android utilise un noyau Linux mais ce nest pas un système Linux. Il na pas doutils utilisateur Linux (seulement un très petit sous-ensemble). Sur Android, je pense que la prise en charge 64 bits est cohérente dans le système dexploitation de base, donc cat /proc/$$/maps vous permettra de savoir si le système est 64 bits ou 32 bits à partir dune ligne de commande adb.
  • Je crois que Raspberry Pi 3, qui est ARMv8 (CRC, pas de crypto optionnel) rapportera armv7l même si son ARMv8. Donc, ‘ je suis presque sûr que le mauvais processeur sera signalé.
  • @jww Sil signale armv7l, il signifie que vous ‘ exécutez un noyau 32 bits. Vous pouvez exécuter un noyau 32 bits sur un processeur 64 bits. Si vous voulez des informations sur le processeur, lisez /proc/cpuinfo.
  • uname -m renvoie simplement  » aarch64 « . / proc / cpuinfo ne contient pas ‘ toujours un nom pour un processeur non plus.

Réponse

Comme le souligne Richard, les variantes armv7 sont toutes 32 bits, il ny a donc pas détiquette redondante armv7-32 , etc.

Sur un système Linux, vous pouvez facilement, mais pas vraiment définitivement, vérifier en examinant un exécutable commun:

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

Je dis « pas définitivement » car il est possible dexécuter des exécutables 32 bits sur un système 64 bits.

Il ne semble pas y avoir de solution infaillible dans /proc ou /sys; la sortie de /proc/cpuinfo peut fournir des indices significatifs. Si pour une raison quelconque vous avez besoin dune vérification automatisée, la création dune table mappée sur le champ « nom du modèle » semble être une méthode potentiellement valable (les autres champs, y compris « modèle », « cpu family », etc. semblent facultatifs – ils ne le font pas  » napparaissent pas du tout pour moi sur un processeur Broadcom 2708 ARMv6).

Commentaires

  • Donc armv7l a raison de 32 bits?
  • @bakalolo Lisez lentement la question et la réponse acceptée;)

Réponse

Installez le package « lshw » .

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

Réponse

On dirait que la plupart des façons de voir le nombre de bits sont en quelque sorte sachez que arm7 = 32 bits et bien que cela puisse être vrai, mais quen est-il

pi@rpi9:~ $ getconf LONG_BIT 32 

Et si vous voulez rechercher le modèle de processeur, jutilise normalement 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 

Commentaires

  • getconf LONG_BIT est très simple

Réponse

Essayez ce qui suit.

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

La taille de ladresse est void*.

Commentaires

Réponse

Non, cest « un ordinateur 64 bits. Cest un Allwinner H8 , la sorcière est un double ARM-7. 8 cœurs, 64 bits, powervr, sgx 544, à double vitesse (700 mhz).

Donc non, il est capable dêtre 64 bits. Seul le système dexploitation peut être 32.

Commentaires

  • où avez-vous trouvé que les OP ‘ utilisent Allwinner H8? Larchitecture est armv7l qui nest clairement pas une 64 bits
  • Il est ‘ de montrer un moyen de trouver les informations souhaitées depuis dans le système au lieu d’utiliser un tiers -informations sur les parties provenant de sources externes. Cela convient mieux pour être un commentaire quune réponse (doù tous les votes négatifs).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *