Epochalypse: il bug che in futuro colpirà i sistemi a 32 bit

8 marzo 2024

Sincronizzate gli orologi: il 19 gennaio 2038, alle 03:14:08 UTC, si fermeranno i sistemi informatici che utilizzano la data zero Unix Epoch (o Unix Time o Unix Timestamp), iniziata il 1° gennaio 1970: questo fenomeno è noto come il problema Y2K38 o Y2038.

Ads

Il tempo Unix è contato in secondi con un intero a 32 bit, il che significa che ha un limite massimo di 2.147.483.648 secondi prima che si verifichi un errore di overflow. Parliamo di un limite che equivale a circa 68 anni. Al verificarsi di questo errore, nel miglior scenario possibile, un sistema a 32 bit passerà a -2.147.483.648, che corrisponde alle 20:45:52 UTC del 13 dicembre 1901. Tuttavia, la maggior parte dei sistemi che fanno riferimento al comando UnixTimestamp() probabilmente si bloccheranno, a meno che l’errore di overflow non venga gestito correttamente.

Niente paura però: nonostante il numero significativo di sistemi legacy esistenti, la maggior parte dei PC più recenti è passata ad architetture a 64 bit (x64) ed i sistemi operativi hanno seguito l’esempio. L’hardware più recente che esegue un sistema operativo x64, come Windows 10 o successivo, non avrà problemi nel 2038, né in nessun’altra data futura. Sebbene possa sembrare intuitivo che il passare da 32 a 64 bit implichi un raddoppio del tempo Unix, trattandosi di un algoritmo esponenziale, l’incremento dello Unix Timestap è molto, molto più grande: un intero a 32 bit è limitato a valori positivi o negativi di 2^31, ovvero i due miliardi+ di secondi precedentemente menzionati. Aumentando il sistema a 64 bit, abbiamo a disposizione secondi positivi o negativi 2^63, il che significa che ci vorranno 292 miliardi di anni prima che l’orologio di un sistema x64 possa andare in overflow: qualcosa come circa 21 volte l’età stimata dell’universo.

Impostando la data di sistema in avanti, l’utente di Twitter Enderman ha individuato una complicazione che si verificherà sui sistemi Windows 10 a 32 bit nel 2038:

Problemi simili e più gravi possono verificarsi però in software non patchati, anche se l’applicazione viene eseguita su un computer a 64 bit con il sistema operativo x64 più aggiornato. Questo fenomeno è già stato osservato in alcuni vecchi giochi per PC a 32 bit abbandonati dallo sviluppatore.

e7f6622f-e22a-44de-81a1-a630c14fa83d.jpeg

Quali sono invece le eccezioni più curiose? Le prime versioni di Windows Media Player (WMP). Benché, come sia stato recentemente scoperto, WMP 7 e versioni successive non dispongano di alcuna gestione degli errori per le date oltre il 2038 (dunque andranno semplicemnte a bloccarsi), WMP 6 e versioni precedenti, invece, non avranno problemi a funzionare anche dopo la data dell’Epochalypse.

Fonti: TechSpot, @endermanch (Twitter)