Y2038 bug

Published by Lello on

Nel mondo Linux sta tornando l’incubo del bug Y2K; nel passaggio dal 1999 al 2000, c’erano molte possibilità che diversi computer azzerassero la loro data interna (utilizzando solo le ultime 2 cifre dell’anno, avrebbero potuto interpretare una data del 2000 come se fosse del 1900) con “spiacevoli” inconvenienti per i dati in essi contenuti (pensamo solo alle transazioni finanziarie).

Il bug potrebbe ripresentarsi nel 2038, per la precisione il 19 Gennaio del 2038; in questa data infatti scadrà per i processori a 32-bit lo Unix time-stamp, ossia il tempo calcolato rispetto all’anno di riferimento (1 Gennaio 1970).

Dalla semplice somma:

  • (1 Gennaio 1970) + (2^32)-1 otteniamo come risultato il 19 Gennaio del 2038

Di questo problema si parlerà già nel prossimo Kernel Summit, per quanto riguarda i possibili approcci alla risoluzione del problema.

Di certo il 2038 dovrebbe segnare la fine definitiva dell’architettura a 32-bit; questo vuol dire che ci sono circa 24 anni per migrare verso l’architettura a 64-bit. Tuttavia, occorre pensare che i processori a 32-bit sono prodotto ancora oggi in volumi elevati e molti di questi sistemi in ambienti commerciali, industriali e medici, dove si trovano integrati in molti apparati in uso; l’integrazione è talmente elevata che si pensa che il tempo a disposizione per risolvere il problema possa non bastare.

Il passaggio ad un’architettura a 64-bit potrebbe dunque non essere possibile, per cui è necessario trovare una soluzione di transizione il prima possibile che possa far traghettare i sistemi a 32-bit oltre il 2038.

Il team del kernel di linux è già al lavoro, ed ha proposto 3 possibili soluzioni:
1) In-kernel correctness
2) Userspace ABI modifications
3) Aiding in validating userspace correctness

Il lavoro è appena cominciato, mancano solo 24 anni ….