Quei primi mille miliardi di secondi

Pochi giorni fa, per la precisione alle 3, 46 minuti e 40 secondi del mattino di domenica 9 settembre (nel fuso italiano), lo UNIX time_t ha raggiunto quota un miliardo...


Nessuno sembra essersene accorto, ma cinque giorni fa, per la precisione alle 3, 46 minuti e 40 secondi del mattino di domenica 9 settembre (nel fuso italiano), lo UNIX time_t ha raggiunto quota un miliardo. Pare incredibile, ma la notizia non è stata segnalata nemmeno da
Slashdot!

[pioppo@abulafia pioppo]$ date +%s

1000330629

Chi si è imbattuto altre volte nel time_t sarà abituato a vedere numeri a 9 cifre che cominciano per 9… ben pochi ricorderanno i tempi in cui il time_t cominciava per 8 (da maggio 95 a luglio 98) e praticamente nessuno ricorderà il 7 (da marzo 92 a maggio 95).

Ok… piccola spiegazione per chi non ci sta capendo niente. Il time_t è una tipica convenzione UNIX per determinare un istante temporale con una risoluzione di un secondo: infatti time_t esprime il numero di secondi che sono passati dalla mezzanotte del primo gennaio 1970 (data comunemente nota come “the epoch”… scelta appositamente perché UNIX venne scritto quell’anno e vide la luce il successivo). Tutti i sistemi UNIX misurano il tempo e le date in questo modo utilizzando almeno 32 bit per il contatore e questo è il motivo per il quale non c’è mai stato un pericolo millennium bug su UNIX (ma ci saranno problemi nel 2038 quando il time_t arriverà a 2147483648 ovvero 2 elevato alla 31… per allora speriamo di avere tutti quanti un processore a 64 bit o che almeno tutte le implementazioni UNIX abbiano convertito il time_t da un signed long int ad un unsigned long int, regalandoci così un bit in più, pari a altri 68 anni di tempo utile).

In realtà l’epoch non è sempre stata come è adesso e UNIX ha avuto il suo millennium bug nei primi mesi di vita. Cito dalla home page di Dennis Ritchie:

“Abbiamo persino anticipato il millennium bug: il tempo veniva misurato in sessantesimi di secondo a partire dal primo gennaio 1971 come una quantità a 32 bit. La sezione BUGS di time(II) riporta: “il lettore accorto noterà che 2^32 sessantesimi di secondo sono solo 2.5 anni”. Più tardi, questo venne corretto più di una volta dichiarando una nuova epoca, quindi nuovamente nel 1973 imponendo le unità come secondi interi a partire dal 1° gennaio 1970″.

Questa mi sembra una buona occasione anche per andarsi a leggere la prima versione dello
" UNIX
Programmers’ Manual
" datato 3 novembre 1971.

Fu in quel manuale che venne deciso come devono essere fatte le “man page” (pagine di help sotto Unix) che tutti quanti usiamo ancora oggi!

Buon miliardesimo secondo a tutti.

Simone
Piunno

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

  • Anonimo scrive:
    le ditte si difendono dagli stupidi
    E' chiaro che la EA si difende da chi non starà aspettando altro che scandalizzarsi.Certo è vero che potrebbe veramente risultare di cattivo gusto.Certo è anche vero che le persone non se ne stanno di certo fregando.Anche io oggi ho raccontato una barzelletta. Questo non perché me ne sbatto. Questo perché si cerca di andare avanti. Certamente però, io sono lontano diverse migliaia di KM da quel luogo e quindi il tempo in cui si potrà scherzare di nuovo, da quelle parti, sarà diverso.Io avrei piuttosto attivato un forum anche li.Giusto per non lasciare un "chiuso", che è peggio.
    • Anonimo scrive:
      Re: le ditte si difendono dagli stupidi
      - Scritto da: Effetto Zorba


      E' chiaro che la EA si difende da chi non
      starà aspettando altro che scandalizzarsi.CLAP CLAP CLAP CLAP
Chiudi i commenti