#131 – Il bug del 2038

Pillole di Bit - A podcast by Francesco Tucci - Lunedì

Categorie:

A Gennaio del 2038 ci sarà un gran casino con il conteggio del tempo nei calcolatori, anzi, ad essere sinceri i casini sono già successi ed è tutta colpa di un overflow su un numeratore. Pillole di Bit (https://www.pilloledib.it/) è un podcast indipendente realizzato da Francesco Tucci, se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme: - Telegram (o anche solo il canale dedicato solo ai commenti delle puntate) - TikTok (per ora è un esperimento) - Twitter - BlueSky - Il mio blog personale ilTucci.com - Il mio canale telegram personale Le Cose - Mastodon personale - Mastodon del podcast - la mail (se mi vuoi scrivere in modo diretto e vuoi avere più spazio per il tuo messaggio) Rispondo sempre Se questo podcast ti piace, puoi contribuire alla sue realizzazione! Con una donazione diretta: - Singola con Satispay - Singola o ricorrente con Paypal Usando i link sponsorizzati - Con un acquisto su Amazon (accedi a questo link e metti le cose che vuoi nel carrello) - Attivando uno dei servizi di Ehiweb Se hai donato più di 5€ ricordati di compilare il form per ricevere i gadget! Il sito è gentilmente hostato da ThirdEye (scrivete a domini AT thirdeye.it), un ottimo servizio che vi consiglio caldamente e il podcast è montato con gioia con PODucer, un software per Mac di Alex Raccuglia Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 131 e io sono, come sempre, Francesco. Il 19 Gennaio 2038 alle 3:14:07 sarà l’ultimo momento prima del crash. Perché il secondo successivo, per i computer,almeno alcuni, sarà venerdì 13 dicembre 1901 alle 20:45:52. Un bel problema. Eh, ma è tra 18 anni più o meno! Certo, ma i problemi iniziano ad esserci già adesso, per i sistemi che calcolano cose molto in là nel tempo. Ok, è necessario partire dalle basi. Contare il tempo, calcolarlo e usarlo in codici, programmi e database è sempre stato un gran problema nel mondo dei calcolatori. Un problema talmente grande che persino Apple, una delle più grandi aziende che sviluppa software e sistemi operativi, non più di 10 anni fa ha avuto un problema sulla sveglia in iOS al cambio dell’ora. Gestire in un sistema operativo le date, le ore, i fusi orari, la gestione dell’ora legale e solare, il formato data che in certi posti è giorno, mese, anno, in certi altri è, mese, giorno anno e in altri ancora, anno, mese, giorno è un vero delirio. Se poi aggiungiamo che l’anno può essere scritto con due o 4 cifre, arriviamo al famosissimo millennium bug. I computer erano programmati per ignorare le prime due cifre dell’anno, in quanto si supponeva fossero sempre 19, ma il passaggio dal 99 allo 00 ha creato non pochi problemi a chi lavorava nel settore, per evitare che i computer pensassero di essere tornati improvvisamente al primo gennaio 1900. Ogni sistema ha un suo modo per contare il tempo, i calcolatori a 32bit usano una variabile a 32bit, la massima gestibile, con segno, che conta i secondi a partire dal 1 gennaio 1970 a mezzanotte. Ok, facciamo un passo indietro. Una variabile a 32 bit può contenere un numero che va da 0 a 2 elevato a 32-1, cioè 4.294.967.295, il valore più basso, cioè zero equivale a 32 bit a zero, il più alto equivale a 32 bit a uno. Dire che la variabile è con segno equivale a prendere il bit più significativo, quello più a sinistra, e dirgli semplicemente: se tu sei a zero, questo numero è positivo, se sei a 1, questo numero è negativo. In questo modo però la nostra variabile, può contare sempre i soliti quattro miliardi e rotti di numeri, ma metà in positivo e metà in negativo. Bene, il 19 Gennaio 2038 alle 3:14:07 sarà il numero più alto che questa variabile può contenere come numero positivo 2.147.483.647, che in binario è uno zero seguito da 31 uno. Il numero successivo, che in binario è un 1 seguito da 31 zeri è -2.147.483.648. Un gran bel casino. Siamo nel 2020, al 2038 mancano 18 anni, insomma di tempo per ragionarsi su ce n’è, no? Ecco, no. Ho letto un thread su Twi