L’année 2038 pourrait provoquer l’arrêt de la plupart des ordinateurs modernes si nous ne nous y préparons pas. Ce n’est pas à cause d’un virus massif ou d’un matériel qui se dégrade, cela a tout à voir avec la façon dont les ordinateurs gardent la trace du temps.
Presque tous les ordinateurs gardent le temps en utilisant un processeur 32 bits, et comptent en avant à partir de 00:00:00 UTC le 1er janvier 1970, appelé « l’époque ». Ce point dans le temps a été défini comme la norme pour les systèmes informatiques modernes, mais il y a un problème majeur. Sept secondes après 3h14 UTC le 19 janvier 2038, le système 32 bits qui stocke ces données temporelles dans de nombreux ordinateurs sera à court de positions.
Le problème est similaire à celui de l’an 2000, où une valeur à 2 chiffres ne pouvait plus être utilisée pour coder les années 2000 ou plus tard, mais il est différent dans la mesure où ce bogue 32 bits est lié aux systèmes de type Unix et au format temporel Unix.
Ces similitudes avec le bogue de l’an 2000 ont largement conduit à ce que le problème de 2038 soit connu sous le nom de bogue du millénaire Unix.
Le bogue du millénaire Unix
Les processeurs exécutant des logiciels 32 bits peuvent gérer 232 valeurs différentes ou 4 294 967 295 nombres différents dans 4 Go de mémoire. Ces systèmes stockent les dates et les heures par morceaux de 32 bits. En réalité, ce grand nombre de valeurs différentes est divisé par deux pour la conservation de l’heure et d’autres applications de stockage de données. Cela laisse 2 147 483 647 valeurs positives dans lesquelles stocker des données.
Cela signifie que la dernière heure qui peut être représentée dans le timecode 32 bits d’Unix est 231-1 ou 2 147 483 647 secondes après le 1er janvier 1970. Après ce point, les temps s’inverseront et seront stockés sous forme de nombres négatifs. Ceci est dû au fait que le système de stockage manque d’entiers à moduler, ne laissant que le signe à changer. Les ordinateurs interpréteront alors cela comme le 13 décembre de 1901, et plus loin, plutôt que la date réelle.
Cela peut ne pas sembler être un gros problème, mais pensez à toutes les façons dont nous utilisons les logiciels. Si vous avez des licences qui sont horodatées, vous pourriez soudainement perdre l’accès à des documents de travail importants, à des informations financières et plus encore.
Les problèmes ne commenceront pas seulement à survenir en 2038, tout logiciel qui utilise des dates futures devra être corrigé rapidement. Les programmes qui fonctionnent avec des dates 20 ans dans le futur, comme les fonds d’investissement et les programmes de planification avancée, devaient être corrigés au plus tard en 2018.
Tout cela peut sembler être une solution simple, il suffit de changer la date de fin de la méthode de stockage, mais ce n’est pas si simple. Les ingénieurs informatiques derrière les jeux et les applications qui ont des périodes d’attente ont déjà des problèmes pour coder les dates au-delà du 19 janvier 2038. Comme la méthode de stockage est Unix 32 bits, il est impossible pour ces programmeurs tiers de coder des dates au-delà de cette date.
RELATIF : 12 OLDEST WEBSITES FROM THE 1980S AND 90S STILL ONLINE TODAY
Mais alors quoi, vous pouvez demander. Les dates seront modifiées, les programmateurs s’attendent déjà à ces questions et tout problème potentiel ne provoquera pas de panique, il sera simplement rapidement réglé. Eh bien, ce n’est pas tout à fait vrai.
Les systèmes de transport, y compris les équipements de vol et les voitures modernes, utilisent des logiciels intégrés qui ne sont souvent pas touchés. Presque tout dans les voitures modernes est contrôlé par son ECU, ou ordinateur de bord, qui utilise le chronométrage Unix pour suivre les dates et les heures. Cela signifie que ce bug pourrait potentiellement interrompre les systèmes de freinage ABS, les contrôles électroniques de stabilité, les contrôles de traction et les systèmes GPS ; ils pourraient tous être significativement impactés.
Tous ces systèmes n’auront pas besoin d’accéder aux dates pour fonctionner, mais certains le feront, et il est difficile de savoir lesquels ont été programmés avec un code dépendant de la date.
Alors, quelle est la solution ? Il n’y en a pas une facile.
Les systèmes embarqués comme ceux des voitures et des appareils électroménagers sont conçus pour durer tout au long du cycle de vie de l’appareil sans mise à jour logicielle. Les appareils électroniques connectés peuvent être rapidement réparés avec une mise à jour logicielle le moment venu, mais ce sont les systèmes embarqués qui feront probablement le plus de ravages en 2038, car la plupart ne seront pas mis à jour.
Une option consiste à changer le système de stockage des données de l’entier de 32 bits en un entier de 32 bits non signé. Cela permettrait théoriquement de stocker les dates jusqu’en 2106, mais tout système utilisant une date antérieure à 1970 rencontrerait des problèmes pour accéder à ces données.
Si le stockage des données est augmenté à 64 bits, nous rencontrerions des problèmes de stockage de compatibilité entre les anciens systèmes qui n’utilisent que le stockage de données 32 bits.
Il n’y a pas de solution universelle actuelle au problème, et même les correctifs les plus largement acceptés ont encore des bogues dans certaines zones d’utilisation. Cependant, il y a des nouvelles positives à la fin de ceci.
La plupart des nouveaux équipements électroniques sont conçus pour utiliser la nouvelle méthode de stockage de données 64 bits. Un entier de date aussi grand s’étendrait 20 fois plus longtemps que l’âge actuel estimé de l’univers, soit environ 292 milliards d’années à 15:30:08 UTC le dimanche 4 décembre 292,277,026,596. Votre iPhone pourrait donc être en sécurité jusque-là.
Heureusement, ce problème est bien connu et a été étudié en profondeur, ce qui signifie que les ingénieurs en informatique résoudront probablement les problèmes, au moins avec des logiciels qui sont toujours mis à jour et maintenus. Mais qu’en est-il de la Prius 1997 en parfait état qui se trouve dans votre garage en 2038 ? Eh bien, vous ne pourrez peut-être plus la conduire après 3 h 14 du matin le janvier 2038, grâce à son ordinateur de bord désormais défectueux.