Forum de Minuit
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum de Minuit

forum encyclopédique sur le paranormal
 
AccueilPortailPublicationsS'enregistrerConnexion




Votre forum d'informations
paranormales




Commandez dès a présent le TOME 1 et 2
en attendant la sortie octobre 2021 du tome 3

A commander à LA FNAC
et tres bientôt le Tome 2 sur vos sites préférés
-43%
Le deal à ne pas rater :
Smartphone SAMSUNG Galaxy Note20 5G 256 Go Gris à 599€
599 € 1059 €
Voir le deal

 

 bug de l'an 2038

Aller en bas 
AuteurMessage
chantara
Founder & Team Manager
Founder & Team Manager
chantara

Nom : Agent Dana Scully
Messages : 20653
Date d'inscription : 09/05/2009
Age : 59
Localisation : entre ciel et terre

bug de l'an 2038 Empty
MessageSujet: bug de l'an 2038   bug de l'an 2038 Icon_minitimeMer 7 Avr 2021 - 7:20

Le bug de l'an 2038, ou bogue de l'an 2038 (au Canada), aussi appelé 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 universel1. 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 (tels 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) et 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.




[Vous devez être inscrit et connecté pour voir ce lien]

Illustration du phénomène. La valeur décimale de la date deviendra négative à 03:14:08 UTC, le 19 janvier 2038.



Présentation
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 en 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 19014.

Les logiciels concernés sont très nombreux, car la norme POSIX, inspirée des systèmes UNIX, a été utilisée pour de nombreux programmes écrits en langage C pour de nombreux systèmes d'exploitation. Sur ceux de type Unix représentant le temps par un entier de 32 bits non signé (conforme à la norme POSIX), la date limite est située en 2106 et non en 2038. Ces systèmes d'exploitation sont toutefois minoritaires. Le passage à un horodatage sur 64 bits introduirait une nouvelle date butoir se situant au dimanche 4 décembre 292 277 026 596 ap. J.-C. à 15 h 30 min 8 s (soit environ 21 fois l'âge de l'Univers) et résoudrait donc le problème, car les 64 bits permettraient à l'ordinateur de pousser la limite à 263 − 1 secondes.

Dans le domaine applicatif, le problème s'est révélé dès les années 2010 comme celui de l'an 2000 s'était révélé dès les années 1980 sur les échéanciers des plans à long terme (les tableurs utilisent depuis des dates soit glissantes, soit en format long).

Il n'existe pas de correctif simple et unique pour ce problème, car les horodatages sur 32 bits sont aussi présents dans plusieurs formats de fichiers actuels (par exemple le format ZIP). Un changement de représentation dans les ordinateurs rendrait inopérants les programmes exploitant l'actuelle équivalence entre la représentation interne et le format de fichiers. Beaucoup de travail sera donc nécessaire « en coulisses » pour que rien ou presque n'apparaisse en surface, ce qui avait déjà été le cas à l'approche de l'an 2000.

Structures de données
De nombreuses structures de données qui sont en usage aujourd'hui ont des représentations de temps en format 32 bits, notamment, pour les plus connues :

les systèmes de gestion de dossiers ;
les formats de dossier binaires ;
les bases de données ;
certains langages de requête de base de données. (ex. : MySQL, qui utilise la fonction du genre UNIX_TIMESTAMP() encodée en 32 bits).
Exemples de systèmes qui utilisent les formats de temps en 32 bits :

les systèmes COBOL conçus entre 1970 et 1990 ;
les systèmes intégrés en utilisations dans les usines pour les sous-systèmes de contrôle et de surveillance de raffineries ;
de nombreux systèmes informatiques en usage dans des organisations médicales et militaires.


Système d'exploitation
Linux
Les systèmes d’exploitation utilisant le noyau Linux en 64 bits sont tous immunisés.

La version 3.17 du noyau Linux utilise une représentation interne des dates sur 64 bits5,6,7, ce qui prépare les autres adaptations nécessaires, au niveau des bibliothèques standard C puis des applications.

Android
La version Marshmallow 6.0 d'Android à base de noyau Linux 3.10 n’incorpore aucune correction.

Windows
En Visual C 8, le temps est codé sur 64 bits par défaut8.

En Visual C 7.1, le développeur doit explicitement utiliser le temps en 64 bits

Solutions possibles
Il n’existe pas de solution universelle pour les problèmes qui se manifesteront en raison du bug de l'an 2038. N'importe quelle altération de la définition du type de variable utilisé pour dénoter le temps time_t enchaînerait des problèmes de compatibilité de code dans toutes les applications où la représentation de la date et du temps dépendent d'un système conçu de base pour fonctionner avec un nombre entier signé de 32 bits. Par exemple, le changement de time_t à un nombre entier non signé de 32 bits, ce qui permettrait l'utilisation des systèmes jusqu’à l'an 2106, causerait des complications pour les programmes qui manipulent des données qui ont des dates qui précèdent l'an 1970 car de telles dates seraient représentées par des nombres entiers négatifs. De plus, agrandir la variable time_t à un nombre entier de 64 bits dans les systèmes en utilisation courante produirait des changements incompatibles dans l'organisation des structures et de l'interface binaire de certaines fonctions.

La solution la plus simple proposée est de changer de système, en passant de 32 bits à 64 bits4. En effet, actuellement, la plupart des systèmes informatiques qui ont été conçus pour utiliser du matériel à 64 bits fonctionnent déjà avec des variables time_t de 64 bits.


_________________
[Vous devez être inscrit et connecté pour voir cette image]
Revenir en haut Aller en bas
http://geneaucorinne.wixsite.com/monsite
 
bug de l'an 2038
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum de Minuit :: TOP SECRET - Les Hommes :: BIG BROTHER/INTERNET/ROBOTIQUE/I.A.-
Sauter vers: