Vingt ans plus tard, le bug de l’an 2000 fait son retour

Le 03 :14:08 temps moyen de Greenwich (GMT, alias temps universel coordonné) le 19 janvier 2038 (c’est un mardi), c’est la fin du monde. Enfin, pas dans le sens biblique du Livre des Révélations. Mais ce qui va se passer, c’est que la valeur du temps dans les systèmes d’exploitation Unix 32 bits, comme Linux et les anciennes versions de macOS, est à court de chiffres et commence à compter le temps avec des nombres négatifs. Ce n’est pas bon. Nous pouvons nous attendre à ce que les ordinateurs 32 bits exécutant ces systèmes d’exploitation aient des crises. Heureusement, les développeurs de Linux avaient déjà un correctif prêt à l’emploi.

Le problème commence avec la façon dont Unix indique le temps. Unix, et ses relations — Linux, macOS et autres systèmes d’exploitation compatibles POSIX — datent le début du temps de l’époque : 00:00:00 GMT le 1er janvier 1970. La famille Unix mesure le temps par le nombre de secondes écoulées depuis l’époque.

Pour l’instant, tout va bien. Mais, comme Unix et sa famille ont commencé comme des systèmes d’exploitation 32 bits, la valeur du temps est conservée comme un seul nombre entier signé de 32 bits. Ce sont beaucoup de secondes, mais tout comme le bogue de l’an 2000 du siècle dernier, ce n’est pas suffisant.

Les développeurs Linux ont vu cela venir depuis des décennies. Ainsi, le développeur du noyau Linux Arnd Bergmann et d’autres ont travaillé sur une réparation. Ces corrections sont maintenant dans le prochain noyau Linux 5.6. Bergmann a expliqué : « Linux-5.6, ou mon backport des correctifs vers 5.4, devrait être la première version qui peut servir de base à un système 32 bits conçu pour fonctionner au-delà de l’année 2038. »

Il y a quelques mises en garde :

  • Tout l’espace utilisateur doit être compilé avec un time_t 64 bits, qui sera pris en charge dans les prochaines musl-1.2 et glibc-2.32, ainsi que les en-têtes de noyau installés à partir de Linux-5.6 ou plus.
  • Les applications qui utilisent directement les interfaces d’appel système doivent être portées pour utiliser les syscalls time64 ajoutés dans Linux-5.1 à la place des appels système existants.
  • Les applications qui utilisent une copie privée des fichiers d’en-tête uapi du noyau ou de leur contenu peuvent avoir besoin de se mettre à jour vers la version Linux-5.6.
  • Quelques interfaces restantes ne peuvent pas être modifiées pour passer un time_t 64 bits de manière compatible, elles doivent donc être configurées pour utiliser les temps CLOCK_MONOTONIC.
  • Tous les problèmes d’Epoch présents sur les machines 64 bits s’appliquent également aux machines 32 bits. Cela affecte en particulier les systèmes de fichiers avec des horodatages sur disque utilisant des secondes 32 bits signées : ext4 avec les petits inodes de style ext3, ext2, xfs (à corriger bientôt) et ufs.

En bref, il y a beaucoup de travail de nettoyage à faire même après que le problème de base ait été corrigé.

MacOS s’éloigne des logiciels 32 bits depuis plus d’une décennie. Mais, ce n’est que dans la version fin 2019 de macOS Catalina, qu’Apple a donné le coup d’envoi aux applications 32 bits.

Maintenant, vous vous demandez peut-être — puisque nous utilisons tous des ordinateurs 64 bits de nos jours — pourquoi c’est même un problème. Eh bien, c’est comme suit . Tout d’abord, de nombreux systèmes embarqués et appareils de l’Internet des objets (IoT) exécutent encore des systèmes d’exploitation 32 bits. En effet, d’ici 2038, il y aura probablement encore de nouveaux appareils 32 bits qui arriveront sur le marché.

Nous savons également, grâce au bogue de l’an 2000 qui surgit à nouveau en 2020, que les systèmes dont vous pourriez supposer qu’ils seront jetés dans les décharges dans 18 ans seront encore vivants et bien portants — et se comporteront mal à l’arrivée de l’époque.

Mais regardez de cette façon : Après avoir corrigé cela, nous n’aurons pas à nous inquiéter que Linux 64 bits soit à court de secondes jusqu’à 15:30:08 GMT dimanche 4 décembre 29 227 702 659. Personnellement, je ne vais pas m’inquiéter de celui-là.

Histoires connexes:

  • Le bogue de l’an 2000 est de retour, causant à nouveau des maux de tête aux développeurs
  • Le gouvernement de la Corée du Sud explore le passage de Windows au bureau Linux
  • Un méchant bogue sudo de Linux, macOS trouvé et corrigé

.

admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

lg