I computer moderni potrebbero smettere di funzionare il 19 gennaio 2038

L’anno 2038 potrebbe far smettere di funzionare la maggior parte dei computer moderni se non ci prepariamo. Questo non è dovuto a qualche virus massiccio o al degrado dell’hardware, ha tutto a che fare con il modo in cui i computer tengono traccia del tempo.

Quasi ogni computer tiene il tempo usando un processore a 32 bit, e conta in avanti dalle 00:00:00 UTC del 1° gennaio 1970, indicato come “l’epoca”. Questo punto nel tempo è stato fissato come standard per i moderni sistemi di calcolo, ma c’è un grosso problema. Sette secondi dopo le 3:14 UTC del 19 gennaio 2038, il sistema a 32 bit che memorizza questi dati temporali in molti computer esaurirà le posizioni.

Il problema è simile al problema Y2K, dove un valore a 2 cifre non poteva più essere usato per codificare gli anni 2000 o successivi, ma è diverso in quanto questo bug a 32 bit è legato ai sistemi Unix-like e al formato temporale Unix.

Queste somiglianze con il bug Y2K hanno ampiamente portato il problema 2038 ad essere conosciuto come Unix Millennium Bug.

The Unix Millennium Bug

I processori che eseguono software a 32 bit possono gestire 232 valori diversi o 4.294.967.295 numeri diversi in 4GB di memoria. Questi sistemi memorizzano date e orari in blocchi da 32 bit. In realtà, questo grande numero di valori diversi viene dimezzato per la conservazione del tempo e altre applicazioni di archiviazione dei dati. Questo lascia 2.147.483.647 valori positivi in cui memorizzare i dati.

Questo significa che l’ultimo tempo che può essere rappresentato nel timecode Unix a 32 bit è 231-1 o 2.147.483.647 secondi dopo il 1 gennaio 1970. I tempi dopo questo punto si riavvolgeranno e saranno memorizzati come numeri negativi. Questo è causato dal sistema di memorizzazione che esaurisce i numeri interi da modulare, lasciando solo il segno da cambiare. I computer interpreteranno questo come il 13 dicembre del 1901, e così via, piuttosto che la data effettiva.

Questo potrebbe non sembrare un grosso problema, ma pensate a tutti i modi in cui usiamo il software. Se avete licenze con timestamp, potreste improvvisamente perdere l’accesso a importanti documenti di lavoro, informazioni finanziarie e altro.

I problemi non inizieranno a sorgere solo nel 2038, qualsiasi software che utilizza date future dovrà essere riparato presto. I programmi che lavorano con date di 20 anni nel futuro, come i fondi di investimento e i programmi di pianificazione avanzata, devono essere riparati non più tardi del 2018.

Tutto questo può sembrare una semplice correzione, basta cambiare la data di fine del metodo di archiviazione, ma non è così semplice. Gli ingegneri informatici dietro i giochi e le applicazioni che hanno periodi di attesa stanno già incontrando problemi nel codificare le date oltre il 19 gennaio 2038. Poiché il metodo di memorizzazione è Unix a 32 bit, è impossibile per questi programmatori di terze parti codificare date oltre questa data.

RELATIVO: 12 VECCHI SITI WEB DEGLI ANNI ’80 E ’90 ANCORA ONLINE

Ma allora cosa, vi chiederete. Le date saranno cambiate, i programmatori si aspettano già questi problemi e qualsiasi potenziale problema non causerà panico, sarà semplicemente risolto rapidamente. Beh, questo non è esattamente vero.

I sistemi di trasporto, comprese le apparecchiature di volo e le auto moderne, usano software incorporato che spesso non viene toccato. Quasi tutto nelle auto moderne è controllato dalla sua ECU, o computer di bordo, che usa il timekeeping Unix per tenere traccia di date e orari. Ciò significa che questo bug potrebbe potenzialmente interrompere i sistemi di frenata ABS, i controlli elettronici di stabilità, i controlli di trazione e i sistemi GPS; tutti potrebbero essere significativamente colpiti.

Tutti questi sistemi non richiedono l’accesso alle date per funzionare, ma alcuni sì, ed è difficile sapere quali sono stati programmati con codice dipendente dalla data.

Quindi, qual è la soluzione? Non ce n’è uno facile.

I sistemi integrati come quelli nelle auto e negli elettrodomestici sono progettati per durare per tutto il ciclo di vita del dispositivo senza un aggiornamento del software. L’elettronica connessa può essere rapidamente riparata con un aggiornamento del software quando arriva il momento, ma sono i sistemi incorporati che probabilmente porteranno più scompiglio nel 2038, poiché la maggior parte non sarà aggiornata.

Un’opzione è cambiare il sistema di memorizzazione dei dati dell’intero a 32 bit in un intero a 32 bit senza segno. Questo consentirebbe teoricamente la memorizzazione della data fino al 2106, ma qualsiasi sistema che usasse una data precedente al 1970 incontrerebbe problemi nell’accedere a questi dati.

Se la memorizzazione dei dati venisse portata a 64-bit, ci imbatteremmo in problemi di compatibilità tra i vecchi sistemi che usano solo la memorizzazione dei dati a 32-bit.

Non esiste attualmente una soluzione universale al problema, e anche le correzioni più ampiamente accettate hanno ancora bug in alcune aree di utilizzo. Tuttavia, c’è una notizia positiva alla fine di questo.

La maggior parte delle nuove apparecchiature elettroniche è progettata per utilizzare il più recente metodo di archiviazione dati a 64 bit. Un intero di data così grande si estenderebbe 20 volte più a lungo dell’età attuale stimata dell’universo, circa 292 miliardi di anni alle 15:30:08 UTC di domenica 4 dicembre 292.277.026.596. Quindi il tuo iPhone potrebbe essere al sicuro fino ad allora.

Fonte: Wikimedia

Per fortuna, questo problema è ben noto ed è stato studiato a fondo, il che significa che gli ingegneri informatici probabilmente risolveranno i problemi, almeno con il software che è ancora aggiornato e mantenuto. Tuttavia, per quanto riguarda quella Prius del 1997 in ottime condizioni che si trova nel vostro garage nel 2038? Beh, potreste non essere in grado di guidarla dopo le 3:14 del gennaio 2038, grazie al suo computer di bordo ormai difettoso.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.