Linuxtrent: News: un secondo, due secondi, tre secondi, quattro secondi ............

  • From: fred <fred@xxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Sun, 16 Sep 2001 01:25:12 +0200

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

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

[pioppo@abulafia pioppo]$ date +%s
1000330629

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

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

In realt=E0 l'epoch non =E8 sempre stata come =E8 adesso e UNIX ha avuto il=
 suo=20
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=
=20
sessantesimi di secondo a partire dal primo gennaio 1971 come una quantit=E0=
=20
a 32 bit. La sezione BUGS di time(II) riporta: "il lettore accorto noter=E0=
=20
che 2^32 sessantesimi di secondo sono solo 2.5 anni". Pi=F9 tardi, questo=20
venne corretto pi=F9 di una volta dichiarando una nuova epoca, quindi=20
nuovamente nel 1973 imponendo le unit=E0 come secondi interi a partire dal=
 1=B0=20
gennaio 1970".

Questa mi sembra una buona occasione anche per andarsi a leggere la prima=20
versione dello "UNIX Programmers' Manual" datato 3 novembre 1971.
Fu in quel manuale che venne deciso come devono essere fatte le "man page"=
=20
(pagine di help sotto Unix) che tutti quanti usiamo ancora oggi!

Buon miliardesimo secondo a tutti.

Un pinguino al giorno leva il bug di torno

My personal homepage            =09
http://continue.to/fred
Lavarone homepage:
http://www.lavarone.com
Linuxtrent
http://linuxtrent.grinta.net/



-- 
PROSSIMA ASSEMBLEA: venerdi` 28 settembre 2001 20:30 a Madrano di Pergine.

Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts:

  • » Linuxtrent: News: un secondo, due secondi, tre secondi, quattro secondi ............