COMPTOIR
  
register

Le noyau Linux en 32 bits, ça se perd lentement !

Les premiers processeurs 64-bit ont commencé leur conquête du grand public à partir de 2003 via les Opterons puis les Athlons 64 en 2003. Pour l'anecdote, c'est d'ailleurs la solution d'AMD qui s'est imposée comme standard, d'où le nom d'AMD64 - désormais x86_64 - la version d'Intel, Itanium IA64, s'étant peu à peu éteinte jusqu'aux Kittson dont les ventes se termineront en 2020 sans successeur.

 

Quel rapport avec la Bretagne Linux ? Hé bien, après plus de 15 ans de vie, le 64-bit est devenu de plus en plus courant, si bien que les développeurs ne testent pas vraiment (comprendre parfois pas du tout) les nouveautés... Vous devinez la suite : KPTI, une des corrections logicielles de Spectre, a laissé passer un bug dans le noyau. Depuis l'été 2018 jusqu'à la future version 5.3, un souci d'association entre les pages mémoire virtuelles et physiques touchait uniquement la mouture 32-bit (x86 uniquement !), et résultait en un comportement indéfini... comprendre des plantages, reboots et autres kernel panic.

 

Le patch sera très probablement intégré dans les branches précédentes, comme Windows le fait par ailleurs sur d'autres rustines. Si l'on peut se désoler de tels problèmes, il faut en revenir aux structures du libre - surtout en version software - : sans contrôle strict de la qualité et avec des moyens très rarement centrés sur le support à long terme, les configurations trop vétustes ou ésotériques sont souvent laissées de côté. Mais en même temps, qui utilise encore des CPU X86 32-bit sur une machine maintenue à jour ? (Source : Phoronix)

 

linux

Un poil avant ?

D'autres Ryzen arrivent, tous en Zen 2

Un peu plus tard ...

Une mise à jour de la norme des nombres flottants

Les 12 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un programmeur en Nouvelle-Aquitaine, le Mercredi 31 Juillet 2019 à 12h07  
par Un ragoteur charitable des Hauts-de-France, le Mercredi 31 Juillet 2019 à 08h56
Il y'a un biais énorme dans ton raisonnement, les pointeurs 64bit prennent plus de place que les 32bits c'est vrai ! Sauf que les instructions et pointeurs c'est une infime partie de l'occupation mémoire
J'avais raté celle là...

Avez-vous simplement regardé une structure C ou une classe C++ dans un programme ?... Des pointeurs, il n'y a que ça (et en plus il y en a beaucoup qui sont "cachés" en C++ car le compilateur génère une tetra-chiée (tables) de pointeurs additionnel(le)s pour gérer les constructeur, les destructeurs, les méthodes virtuelle, etc).
par Un programmeur en Nouvelle-Aquitaine, le Mercredi 31 Juillet 2019 à 11h57  
par Un ragoteur charitable des Hauts-de-France, le Mercredi 31 Juillet 2019 à 08h56
Il y'a un biais énorme dans ton raisonnement
Il n'y a pas de raisonnement et pas de faille, juste des faits vérifiables, à condition bien sûr de savoir comment les vérifier (*)...

Je programme depuis plus de 40 ans, et j'ai commencé sur des CPU 8 bits, en langage machine (oui, directement en hexadécimal, car les assembleurs n'existaient pas encore).

Vous pouvez contester mon expertise, mais vous ne leurrez que vous-même !

Quant à votre propre raisonnement, il passe à côté de l'essentiel: la gestion des caches de données. Stocker des données 64 bits en cache prend le double de place des données 32 bits, et cause donc un ralentissement du CPU (qui doit attendre que le cache soit rafraîchi avec des données en provenance de la mémoire, alors qu'en 32 bits, ces données n'auraient pas été évincées faute de place. Et je ne parle même pas des problèmes d'alignement des données qui cause des "trous" remplis d'octets de bourrage dans les lignes de cache, trous plus gros en 64 bits).
Il ne couvre pas non plus le surcroît d'utilisation de la RAM (c'est important pour les systèmes avec 4Go et moins).

Par ailleurs, vous mentionnez des "CPU modernes" alors que de toute évidence le sujet se rapporte à de "vieux" systèmes dotés des premiers CPU 64 bits et de peu de RAM; sur ces systèmes, il n'y a pas photo et le 32 bits s'impose, ne vous en déplaise.

(*) C'est en fait assez simple pour un non programmeur: installez la variante 32 bits et la variante 64 bits de la *même* version de la même distribution Linux. Lancez vos programmes préférés et comparez (vitesse, utilisation de la mémoire) !
par Un ragoteur charitable des Hauts-de-France, le Mercredi 31 Juillet 2019 à 08h56  
Il y'a un biais énorme dans ton raisonnement, les pointeurs 64bit prennent plus de place que les 32bits c'est vrai ! Sauf que les instructions et pointeurs c'est une infime partie de l'occupation mémoire, le gros c'est des données qui prennent exactement la même place en 64bits en 32 en 16... Une data en double prend 64 bits quelles que soient les capacités de traitement du processeur: Un CPU moderne le stockera dans un seul registre, quand en mode 32bit il va le scinder sur deux registres pour le re-agréger ensuite. Le fais qu'une variable soit double simple vient du code source qui est le même en 32 et 64
Tu propages une légende urbaine, les perfs sont identiques avec un léger mieux en 64bits : https://doc.ubuntu-fr.org/comparatif_32bits_et_64bits
par Un programmeur en Nouvelle-Aquitaine, le Mardi 30 Juillet 2019 à 17h00
C'est archi faux !

Premièrement, les structures de données en 64 bits prennent plus de place en mémoire (car les pointeurs et les entiers sont sur 64 bits au lieu de 32), et cela impacte évidemment l'utilisation de la RAM (si vous en avez peu, i.e. moins de 4Go, mieux vaut rester en 32 bits), ainsi que celle des caches de données du CPU (en gros, cela revient à diviser par deux le nombre de données présentes simultanément en cache, réduisant donc les performances).
par Nicolas D., le Mardi 30 Juillet 2019 à 17h27  
par LiquidNitrogen, le Mardi 30 Juillet 2019 à 11h54
Il y a de multiples distributions linux qui ont une version justement centrée sur le support à long terme (LTS), telles que debian, ubuntu, RHEL, centos... Et elles ont toutes une version 32 bit

Pour RHEL le controle de la qualité est certainement ultra strict étant donné qu'ils sont une référence pour linux dans le monde des entreprises!

Certainement même plus strict que chez M$
Il y en a oui, et heureusement ! On peut aussi citer Android qui utilise bien le noyau Tux... Mais voilà la preuve que les tests ne sont pas parfait, quel que soit l'organisme...
par Un programmeur en Nouvelle-Aquitaine, le Mardi 30 Juillet 2019 à 17h00  
par Ragoteur 64 péniches embusqué, le Mardi 30 Juillet 2019 à 09h22
ça n'est pas parce qu'on a moins de 4Go de mémoire centrale qu'il ne faut pas utiliser le mode 64 bits.
En 64 bits certaines instructions ne manipulation de données s'exécutent bien plus vite qu'en 32 bits.
Peu importe la capacité mémoire, 256Mo ou 64Go, dès qu'on a un cpu 64bits il est plus interessant d'utiliser un sysème d'exploitation en 64 bits qu'en 32 bits.
C'est archi faux !

Premièrement, les structures de données en 64 bits prennent plus de place en mémoire (car les pointeurs et les entiers sont sur 64 bits au lieu de 32), et cela impacte évidemment l'utilisation de la RAM (si vous en avez peu, i.e. moins de 4Go, mieux vaut rester en 32 bits), ainsi que celle des caches de données du CPU (en gros, cela revient à diviser par deux le nombre de données présentes simultanément en cache, réduisant donc les performances).

Par ailleurs, certains vieux CPU 64 bits sont plus rapides en mode 32 bits (chez Intel, c'est jusqu'aux Core2 inclus).

 
Le 64 bits oui c'est obligatoire pour gérer + de 4Go de RAM
Encore tout faux !

Le mode PAE permet d'exploiter plus de 4Go de RAM avec un noyau Linux 32 bits, et même jusqu'à 64Go.
Cela dit, si vous avez plus de 12Go de RAM, utilisez un noyau d'une version inférieure ou égale à v4.1, car à partir de la v4.2 un bogue (jamais corrigé ) ralenti les accès disque par un facteur 100 ou plus au bout d'un moment...
par Ragoteur 64 péniches embusqué, le Mardi 30 Juillet 2019 à 15h54  
par lerevolteur83, le Mardi 30 Juillet 2019 à 10h36
On recommande au minimum 2Go de RAM pour un OS 64bits c'est pas pour rien...
On recommande au minimum 2Go de RAM pour un OS qu'il soit 32 ou 64 bits parce que les besoins de maintenant font qu'il faut plein de mémoire pour faire la moindre chose sur les OS récents.

Mais bon on ne va pas partir sur un débat sans fin ou chacun veut avoir raison, les CPU depuis quelques temps qu'ils soient ARM x86 ou Power (le RISC d'IBM) sont tous exclusivement 64 bits donc le 32 bits osef un peu maintenant, et pour la mémoire centrale 1 voir 2 Go c'est devenu le strict minimum quelque soit le matériel (PC, smartphone, ....)
par LiquidNitrogen, le Mardi 30 Juillet 2019 à 11h54  
par NICOLAS D, le Mardi 30 Juillet 2019 à 11h54
sans contrôle strict de la qualité et avec des moyens très rarement centrés sur le support à long terme
Il y a de multiples distributions linux qui ont une version justement centrée sur le support à long terme (LTS), telles que debian, ubuntu, RHEL, centos... Et elles ont toutes une version 32 bit

Pour RHEL le controle de la qualité est certainement ultra strict étant donné qu'ils sont une référence pour linux dans le monde des entreprises!

Certainement même plus strict que chez M$
par lerevolteur83, le Mardi 30 Juillet 2019 à 10h36  
On recommande au minimum 2Go de RAM pour un OS 64bits c'est pas pour rien...
par Un champion du monde en Île-de-France, le Mardi 30 Juillet 2019 à 10h12  
[quote name='Ragoteur 64 péniches embusqué' date='30 July 2019 - 11:22 AM' timestamp='1564478526' post='740395']Astuce :

ça n'est pas parce qu'on a moins de 4Go de mémoire centrale qu'il ne faut pas utiliser le mode 64 bits.
[quote]
Astuce :

Un système 32 bits utilise moins de mémoire qu'un système 64 bits. Quand on a une faible quantité de mémoire, passer en 32 bits est une bonne solution.
par Unragoteursansespace en Nouvelle-Aquitaine, le Mardi 30 Juillet 2019 à 09h43  
De nos jours le 32 bits est vraiment archaïque et ne sers que pour l'héritage, même les bouses àpascher sont en 64 bits donc c'est plutôt logique que le 32 bits soit un peu laissé de côté.
par Ragoteur 64 péniches embusqué, le Mardi 30 Juillet 2019 à 09h22  
Astuce :

ça n'est pas parce qu'on a moins de 4Go de mémoire centrale qu'il ne faut pas utiliser le mode 64 bits.

En 64 bits certaines instructions ne manipulation de données s'exécutent bien plus vite qu'en 32 bits.

Peu importe la capacité mémoire, 256Mo ou 64Go, dès qu'on a un cpu 64bits il est plus interessant d'utiliser un sysème d'exploitation en 64 bits qu'en 32 bits.

Le 64 bits oui c'est obligatoire pour gérer + de 4Go de RAM, mais en premier pour des instructions + rapides à l'exécution.
par Unragoteursansespace en Île-de-France, le Mardi 30 Juillet 2019 à 08h51  
J'utilise un Athlon 64 en 32 bits car il n'a qu'1Go de RAM.
Mais bon, je n'ai pas remarqué de différence de stabilité entre le x86 et le x86_64 : la stabilité du noyau est assez mauvaise à cause des pilotes.