Il mistero dell'incidente di "Vela" (22 settembre 1979) e il bug informatico del "Millennium Bug" o dell'"Anno 2038": perché alle ore 03:14:07 del 19 gennaio 2038 gli orologi di milioni di vecchi sistemi informatici a 32 bit finiranno i secondi disponibili tornando improvvisamente al 13 dicembre 1901!
Approfondimento
Chi ha vissuto il passaggio tra il 31 dicembre 1999 e il 1° gennaio 2000 ricorda il timore mondiale per il "Millennium Bug" (Y2K), dovuto al fatto che i programmatori degli anni Sessanta e Settanta, per risparmiare preziosi byte di memoria sulle schede perforate, avevano salvato l'anno con due sole cifre ("99" invece di "1999"). Quel problema fu evitato solo perché negli anni precedenti centinaia di migliaia di ingegneri informatici lavorarono dietro le quinte riscrivendo milioni di righe di codice bancario e governativo. Ma nel cuore dell'informatica mondiale scorre un secondo conto alla rovescia molto più profondo e matematico: il **"Problema dell'Anno 2038"** (noto come *Y2K38* o *Epochalypse*).

Quando negli anni Settanta Ken Thompson e Dennis Ritchie progettarono il sistema operativo UNIX, dovettero scegliere un modo semplice e universale per far calcolare il tempo ai computer. Decisero così di fissare arbitrariamente l'"inizio del tempo informatico" (chiamato **Unix Epoch**) alla mezzanotte esatta (00:00:00 UTC) del **1° gennaio 1970**, e di contare l'ora semplicemente come il numero totale di secondi trascorsi da quel preciso istante.

Nei sistemi e nei database a **32 bit**, questo contatore dei secondi viene memorizzato come un "numero intero con segno a 32 bit" (*signed 32-bit integer*). In codice binario, il numero positivo più grande in assoluto che può entrare in 32 bit (composto da un bit per il segno più 31 cifre "1" di fila) è esattamente $2^{31} - 1$, ovvero **2.147.483.647 secondi**.

Facendo il calcolo a partire dal 1° gennaio 1970, quei due miliardi e centoquarantasette milioni di secondi scadranno esattamente alle **ore 03:14:07 UTC di martedì 19 gennaio 2038**. Un solo secondo dopo — alle 03:14:08 — per un fenomeno chiamato *integer overflow* il contatore aggiungerà 1, trasformerà il primo bit di segno in negativo e il numero diventerà improvvisamente **-2.147.483.648 secondi**! Qualsiasi sistema, file system o microchip embedded rimasto a 32 bit interpreterà quel numero negativo come 2,14 miliardi di secondi *prima* del 1970, facendo saltare istantaneamente la propria data indietro nel tempo al **13 dicembre 1901** alle ore 20:45:52. Mentre tutti i moderni smartphone, PC e server (come i database MySQL e i sistemi Linux moderni) sono già passati da anni all'architettura a **64 bit** (che sposta la scadenza dell'orologio a 292 miliardi di anni nel futuro, venti volte l'età dell'universo), la vera sfida riguarda i milioni di vecchi microchip industriali, centraline automobilistiche, satelliti e infrastrutture progettate per restare accese per trenta o quarant'anni.
Anno2038 Informatica BugInformatico Unix Tecnologia Programmazione StoriaDelComputer Futuro
11 807
Accedi per reagire Aggiungi ai preferiti
Commenti

Accedi per commentare

Altre curiosita su Tecnologia
Il primo laptop commercialmente disponibile è stato il Grid Compass, lanciato nel 1982.... Lanciato nel 1982, il Commodore 64 è il singolo modello di home computer più venduto della storia grazie ai su... Lanciato nel 1993, l'Apple Newton MessagePad è stato il primo dispositivo palmare a introdurre il termine "Per... La prima console casalinga della storia fu la Magnavox Odyssey (1972), mentre "Pong" di Atari divenne il primo...
Torna alle curiosita
Per continuare a scoprire
Idee e letture collegate alla curiosita del momento.