Powered By Blogger

Rechercher sur ce blogue

mardi 4 février 2020

Après le bug de l'an 2000, ce sera le bug de 2038 !


 
 
 
Libellés
bug, 2000, 2038, PC, Ordinateurs,
 
 
 
Source.: 
Wis Blade, Architecte logiciel (2005-présent)

En passant les années des dates sur quatre chiffres.
Le bug revêtait plusieurs formes, lorsque les dates n’étaient PAS stockées sur 4 chiffres :
  • Systèmes sans dates : pas de bug.
  • Systèmes avec date simplement affichée : « 1900 » était affiché à la place de « 2000 ». Rien de plus.
  • Systèmes avec calcul sur les dates, notamment écart entre deux dates : ce sont ces systèmes là qui ont requis des corrections.
-
T’inquiètes pas, le bug de 2038 va être bien plus marrant : la plupart des programmes issus de l’ère 32 bits vont déconner bien copieux… On va rigoler sur certains vieux systèmes…

Oui si ce n'est pas corrigé. Le temps est calculé grâce au temps universel puis ajusté en fonction du fuseau horaire.

Le bug de l'an 2038 (aussi nommé Y2038) est un bug informatique

similaire au bug de l'an 2000 qui pourrait perturber le fonctionnement d'un grand nombre de systèmes informatiques le 19 janvier 2038 à 3 h 14 min 8 s, temps universel

. Ils afficheront alors 13 décembre 1901, et 20 h 45 min 52 s.

Ce bug concerne potentiellement tous les systèmes d'exploitation

et les programmes qui utilisent une représentation des dates en 32 bits. Il concerne les formats de fichier (tel que ZIP), les systèmes de fichiers (comme le système de fichier FAT utilisé sur la plupart des clés USB et cartes flash) ou les systèmes d'exploitation à tous les niveaux (du noyau de système d'exploitation aux langages de programmation), voire l'horloge temps réel

elle-même.

Le souci est la limite du nombre signé en 32bit. Qui définit le nombre de seconde écoulées depuis 1970. Il a une longueur finie.

Le problème concerne des logiciels qui utilisent la représentation POSIX du temps

, dans laquelle le temps est représenté comme un nombre de secondes écoulées depuis le 1er janvier 1970 à minuit (0 heure) temps universel. Sur les ordinateurs 32 bits, la plupart des systèmes d'exploitation concernés représentent ce nombre comme un nombre entier signé de 32 bits, ce qui limite le nombre de secondes à 231 − 1, soit 2 147 483 647 secondes (01111111 11111111 11111111 11111111 en binaire),. Ce nombre maximum sera atteint le 19 janvier 2038 à 3 h 14 min 7 s (temps universel). Dans la seconde suivante, la représentation du temps « bouclera » (10000000 00000000 00000000 00000000 en binaire) et représentera −2 147 483 648 en complément à deux, et ainsi l'ordinateur affichera la date du 13 décembre 1901.




Aucun commentaire: