#131 – Il bug del 2038

Pillole di Bit - En podkast av Francesco Tucci - Mandager

Kategorier:

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

Visit the podcast's native language site