"De Millennium Bug"

Autore: Marco Banfi

 Qualche parolina approposito del famoso "Millennium Bug".... Molta gente si guarda in giro e dice: "L'abbiamo scampata! Non è successo niente!!" e altre amenità del genere, senza rendersi conto che forse sono MOLTO più insidiosi gli effetti a lungo termine di quelli a breve e tanto paventati, ad esempio: accendete il vostro computer che, nonostante tutto, sembra funzionare correttamente (e in effetti lui FUNZIONA) e controllate un qualsiasi programma malconfezionato che fa la differenza fra due date, potrebbe succedere che vi faccia impazzire con numeri assolutamente assurdi.
 Il timore infatti, più che per i sistemi operativi, è più che altro per questo tipo di programmi, che, se va bene vi fanno saltare qualche compleanno, ma nel caso peggiore sbagliano la temporizzazione di un processo chimico, oppure saltano il 29 febbraio 2000...
 A parte questo piccolo dettaglio i programmi e programmini da controllare sono un'infinità, a volte (spesso..) i problemi non sono comunque dovuti a chi ha realizzato quel programma, ma a chi ha realizzato le librerie a cui i programmatori si appoggiano (è inutile reinventare ogni volta la ruota!!). Se la funzione "difftime" (prototipo: double difftime(time_t t1, time_t t0)) )è stata realizzata male... ogni programma che si appoggia ad essa fallisce miseramente appena usato con una data con dentro il 2000, oppure, sempre ricordando il discorso anno bisestile, potrebbero avere problemi di sincronia dopo il 29 febbraio (che per loro sarebbe il primo marzo...).
 Ma.. peggio ancora, la stragrande maggioranza dei filesystem in giro si basa sull'anziano MSDOS, il formato di memorizzazione delle date su disco è alquanto strano... in pratica ci sono dei "bitfields" che descrivono la data, 4bit per il mese, 5bit per il giorno del mese, 16-9= 7 bit per l'anno a partire dal 1980 (vedi nota), ci rimangono molti anni comunque per quello... (sarebbe carino avere a che fare con quel problema...)
 Ma l'altro problema è dovuto ai sistemi *nix, dove la data è memorizzata come secondi da una certa data del 1970 in una parola a 32bit, i problemi potrebbero sorgere nel 2030/2040 (non ho voglia di fare i conti...).
 Si spera che per allora non ci siano più sistemi del genere in giro (almeno non in questa forma).

Torna a tecnolido

 



Note varie

Formato Data e Tempo su msdos (e similari)

 L'msdos memorizza la data e l'ora dei files su disco in una maniera piuttosto inefficiente, con un discreto spreco di spazio e a partire dal 1980 per l'anno... 119 anni, al 2100 è esaurito:
YYYYYYYMMMMDDDDD, ogni lettera rappresenta un bit, dal bit 15 al bit 0
year = 0-119 (relative to 1980) (7 bit)
month = 1-12 (4 bit)
day = 1-31 (5 bit)

HHHHHMMMMMMSSSSS ogni lettera rappresenta un bit dal bit 15 al bit 0
hours = 0-23 (5 bit)
minutes = 0-59 (6 bit)
seconds = 0-29 in two-second intervals (5 bit)

Usa il Tasto Back