Si ton processeur permet le 64 bits alors tu peux installer en 32 bits (ce qui est déjà le cas) ou en 64 bits. Si ton processeur ne fonctionne qu'en 32 bits alors un OS 64 bits ne pourra fonctionner.
Le 64 bits permet :
- plus de registres processeurs
- plus d'instructions disponibles
- les opérations s'effectuent sur 64 bits au lieu de 32 bits. Il existe des instructions permettant dans le même temps de traiter soit 1 fois 64 bits, soit 2*32 bits, soit 4*16 bits. Ce peut être intéressant pour la vidéos ou l'audio cas par exemple pour l'audio il n'est pas indispensable d'avoir des infos codées sur 64 bits, c'est couramment du 16 bits et donc tu peux traiter 4 paquets de 16 bits dans un même nombre de cycles.
- le 64 bits permet de travailler dans un espace d'adressage mémoire de 64 bits, soit 2**64 octets alors que le 32 bits est limité à 2**32 = 4 Gio. C'est ce dernier point qui fait souvent dire que le 64 bits ne sert à rien en dessous de 4 Gio en négligeant les autres points.
Néanmoins, il faut que les programmes soient conçus à la base pour du 64 bits (pour optimiser la taille des données à traiter - si tu dois juste avoir une variable vrai/faux un seul bit suffit).
Un programme compilé en 64 bits prendra plus de place en mémoire pour la raison que 8 octets seront nécessaires pour coder une adresse mémoire (8*8=64 bits) alors que 4 suffisent en 32 bits, c'est pour cette raison que le 64 bits consommera plus de mémoire (mais pas deux fois plus).
Exemple le chargementt d'un registre depuis la ram aura une instruction assembleur du genre
mov rax,0x0123456789abcdef qui sera codé en 9 octets (un pour l'opérande mov rax) et 8 autres sous la forme ef cd ab 89 67 45 23 01
L'équivalent en 32 bits sera
mov eax,01234567 avec 1 octet pour l'opérande et 4 pour le codage de l'adresse
Il n'y a pas doublement de la mémoire car les opérandes sont généralement codés avec le même nombre d'octets en 32 et 64 bits (et souvent les opérandes sont codés sur plus d'un octet)
Edit :
uname -a
indique le système installé et le noyau (amd64 = 64 bits, i386 ou i686 indique du 32 bits)
lscpu
indiquera le processeur