Il bug della data del computer Y2K38 sarà il disastro che Y2K non fu? Artboard

Forse, ma probabilmente no. Y2K ha richiesto la modifica di un mucchio di programmi per gestire il doppio delle cifre dell'anno, dato che gli anni erano tipicamente rappresentati da 2 cifre base 10 leggibili dall'uomo. La soluzione era semplicemente aggiungere altre cifre. (Infatti, la maggior parte dei gestori di date possono gestire anni a 5 cifre, quindi non si romperanno nell'anno 10.000.)

Ora, cosa succede se non contate anni ma secondi? Ora vi imbattete in un limite diverso. I computer moderni memorizzano date e orari come numero di secondi dalla mezzanotte del 1 gennaio 1970 UTC. Nell'anno 2038, questo contatore raggiungerà 2^31-1=2.147.483.647=uno 0 seguito da 31 1. Il tuo computer conta per uno, e improvvisamente il 32° bit si inverte. Su molti sistemi, questo 32° bit rappresenta non solo una cifra, ma anche il segno del numero. Così ora aggiungendo una cifra (raggiungendo 1 seguito da 31 0), invece di raggiungere 2^31, si raggiunge -(2^31). Questo improvvisamente farà sì che i computer pensino che siano 2^31 secondi PRIMA del 1 gennaio 1970, piuttosto che 2^31 secondi dopo. Questo metterà la data in ~1900. C'è una soluzione temporanea che è possibile - se trattiamo la data come un numero senza segno, possiamo usare il 32° bit, permettendo valori fino a 2^32-1=4.294.967.295=32 1, ma poi si cerca di aggiungere 1, si finisce con un 1 seguito da 32 0. Il computer dimentica il bit 1, notando solo le ultime 32 cifre (tutti 0), poiché l'ora/data è un numero a 32 bit, e una serie di tutti 0 si convertirà nel numero decimale 0, e il computer improvvisamente pensa che sia di nuovo il 1970. Questo accadrà in ~2110.

Una soluzione più permanente, ma che richiederà una rielaborazione più estesa, è quella di utilizzare un numero a 64 bit per le date. 2^64-1=64 in binario=1.844674407E19=più o meno l'infinito, quindi non dovremo mai più preoccuparci di questo.

Attueremo davvero queste correzioni? Si spera - probabilmente saranno in grado di riparare o sostituire tutti i sistemi colpiti, visto che l'hanno fatto nel 2000 - ma chi lo sa, dopo tutto .