Linux - Compatibilité CPU
Quand vous téléchargerez des distributions GNU/Linux ou des paquetages pré-compilés, vous serez confronté(e) à une question :"C'est quoi ces histoires de i386, i686, x86_64 etc ?". Voici quelques explicatins.

Introduction

Une application (et donc un système d'exploitation) est d'abord écrite dans un language de programmation (par exemple le C) puis traduite en language binaire (suite de 0 et de 1) afin d'être exécutable par l'ordinateur. Or, cette traduction (appellée compilation) est réalisée en fonction de l'architecture de votre microprocesseur (CPU pour Central Processing Unit). Un peu comme si vous deviez traduire de l'anglais (les sources) en chinois ou chinois médiéval.

Le CPU c'est le coeur de votre ordinateur. Leur architecture a considérablement évolué avec le temps. Voici les principales caractéristiques d'un processeur :
  1. Sa fréquence d'horloge exprimée en Hertz. Si le CPU fait 10 opérations élémentaires par seconde, on dit qu'il est cadencé à 10 Hertz.
  2. Sa capacité d'adressage exprimée en bits en fonction du nombre de cases mémoires utilisables (2, 4, 8, 16, 32, 64 ...). En gros, un processeur 32 bits fera des phrases composées de 32 mots pour chaque cadence d'horloge.
  3. Ses jeux d'instructions dépendant de la classe auquel le CPU appartient (x86 pour le grand public).


Quelques CPU

Voici les plus connus pour PC (Personal Computer, la norme IBM compatible, celle de l'immense majorité des utilisateurs au monde, Mac Intosh exclu), appartenant à la famille de processeurs x86.
  • i386 : le 80386 d'Intel des années 80.
  • i486 : le 80486 d'Intel.
  • i586 : le 80586 d'Intel (le fameux Pentium).
  • i686 : Pentium III et IV d'Intel, Athtlon et Duron d'AMD. C'est la dernière génération des processeurs 32 bits.
  • X86_64 : Xeon 64 bits d'Intel et l'Athlon64 d'AMD.
Les architectures entre les fondeurs Intel et AMD sont similaires, x86 donc.

Liste plus exhaustive.


Compatibilité logicielle

Je ne parlerai ici que des processeurs pour PC et non pour PPC (Apple MacIntosh que je connais peu). Je peux juste vous dire de ne pas utiliser une compilation pour Mac sur un PC ou vice et versa, ça ne risque pas de marcher... Utilisateurs d'Apple, suivez ce lien.

Pour qu'une application fonctionne le mieux possible, il faut choisir celle compilée pour votre processeur. Si vous avez un pentium IV (i686) alors une compilation pour i686 permettra à votre CPU de donner toute sa mesure. Heureusement, il existe une compatibilité ascendante : la compilation pour i386 fonctionnera aussi sur le Pentium IV mais moins vite.

Attention : Cela ne marche pas dans l'autre sens : un vieil Intel, 80386 par exemple, ne pourra pas comprendre la compilation pour i686. Pour filer ma métaphore linguistique, il y aurait de bonnes chances pour qu'un chinois moderne comprenne du chinois médiéval mais pas l'inverse.

L'ère des CPU 32 bits s'achève avec la sortie des CPU 64 bits (les x86_64). Là encore, la compatibilité reste ascendante : un AMD64 pourra comprendre des applications 32 bits mais autant lui fournir des compilation pour 64 bits. Et donc un pentium IV ne pourra pas comprendre des compilation 64...

Voici un tableau récapitulatif (je connais mal les CPU d'AMD désolé):

Pentium Pentium IIPentium III
Pentium IVAMD64
Compilation i386okok (mais bof?)
Bof mais okBof mais okBof mais ok
Compilation i586non?okBof mais okBof mais ok
Compilation i686nonnonnonokBof mais ok
Compilation x_64nonnonnonnonok

Pour connaître la version de votre CPU, utilisez par exemple l'application KInfoCenter sous KDE ou bien utilisez la commande console :

$­­ cat /proc/cpuinfo


Et donc ?

Vous savez maintenant quelle compilation vous devriez utiliser. Seulement, vous allez vous rendre compte que ce n'est pas toujours évident. Certaines distribution (et donc paquetages pré-compilés) ne sont pas disponibles dans tout les types de compilation (i386, i586 etc). Faites au mieux...

D'ailleurs, à l'heure où j'écrit (début 2007), il existe des applications qui n'existent pas (où sont compliquées à installer) pour les architectures 64 bits. Notamment certains plugins des navigateurs Internet (Flash par exemple). La différence de rapidité entre compilation i686 et x_64 n'étant pas gigantesque, il faut parfois mieux se contenter d'une compilation un peu plus ancienne mais qui fonctionne à 100%. Reste qu'il est possible au sein d'une distribution compilée en 64 bits d'installer des applications pour 32 bits, mais c'est pas toujours si facile...

Notez que quand vous compilez à la main une application, celle-ci sera compilée dans le même type que le compilateur de votre distribution.



Liens

Article Wikipedia.
Les microprocesseurs.


Date de création : 04/06/2024 @ 12:43
Dernière modification : 17/07/2024 @ 13:49
Catégorie : Linux
Page lue 13563 fois


 Prévisualiser      Imprimer l'article

Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


News RSS du Libre
Infos Site

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


  360 membres


Connectés :

  luteola
Recherche




Sondage
Quelle distribution utilisez vous le plus ?
 
Mandriva
Mepis
Ubuntu &Cie;
SuSE
Debian
Knoppix/Kaella
Xandros
Gentoo
Fedora
Autres
Résultats
Compteur

   visiteurs

   visiteurs en ligne

Divers
GuppyTop

Soutien
Site de Doudou
Site de Garulfo
Anupaz
Haut