2019, 2038 et 2040, des années qui vont poser des soucis

J’avais déjà parlé des dates « par défaut » des ordinateurs, mais saviez-vous qu’après le bug de l’an 2000, d’autres dates risquent de poser des problèmes ? La première est 2019, la seconde 2038 et la dernière 2040.
DateAndTime

Les deux problèmes sont liés. Dans les machines UNIX équipées d’un système 32 bits (typiquement chez Apple les Power Mac sous Mac OS X et les Mac Intel avant Snow Leopard), le temps est calculé en prenant comme référence le 1er janvier 1970 et en comptant le nombre de secondes depuis cette date. Avec un compteur sur 32 bits signés (et donc 31 bits effectifs), la date limite est le 19 janvier 2038 à 3 heures 14 minutes 7 secondes (GMT). Les machines avec un noyau 64 bits (en gros, depuis Snow Leopard sur certains machines, depuis Mountain Lion sur toutes les machines) ne sont pas touchées.

La seconde limite vient des Mac (et notamment du système de fichiers d’Apple). Les premiers Mac utilisaient en effet un compteur 32 bits (non signé) pour le nombre de secondes, avec une date de départ au 1er janvier 1904 à minuit. Pourquoi 1904 et pas 1900 ? Parce que 1900 n’était pas une année bissextile. En démarrant en 1904, le calcul des dates peut s’effectuer avec une version simplifiée pour les années bissextiles (une tous les 4 ans). La date limite est donc le 6 février 2040 à 6 heures 28 minutes 15 secondes. Dans les OS Apple “récents” (depuis System 6…), Apple indique les fonctions logicielles peuvent gérer des dates entre 30 081 avant Jésus Christ et 29 940 (assez bizarrement, la documentation parle de 64 bits signés, mais la valeur correspond à 40 bits).

Un bug plus « amusant » est aussi prévu lors du passage du 31 décembre 2019 au 1er janvier 2020, et il va toucher une partie des Mac qui utilisent un ancien système (pas Mac OS X, donc). Le problème est insidieux : le tableau de bord qui permet de changer la date ne permet de fixer qu’entre 1920 et 2019. Ca touche les systèmes 6, 7 et Mac OS 8 (Mac OS 9 corrige le problème) et ça risque de poser des soucis dans un cas précis : quand la batterie sera vide et qu’il faudra fixer une date en 2020. Si l’heure est bien fixée, il n’y a pas de problèmes : le Mac va passer en 2020 sans soucis, le problème est uniquement lié au panneau qui permet de fixer la date. J’ai pris deux captures pour montrer le souci (sur un vrai Mac, les émulateurs semblent se synchroniser avec l’horloge de la machine).

2019...

2019…


...1920

…1920