Wszyscy pamiętamy ile mówiło się o pluskwie milenijnej. Przygotowania do przełomu wieków pochłonęły miliardy dolarów na badania i wymianę sprzętu. Teraz grozi nam nowa, podobna pluskwa. Rok 2038.
Właściwie chodzi nie tyle o rok 2038 ile o konkretny dzień tego roku - 19 stycznia. Tego dnia o godzinie 3:14:07 komputery zaopatrzone w Unix, lub pokrewny system (np. Linux) mogą przestawić się na datę 13 grudnia 1901, godzina 20:45:52 (i będzie to naprawdę pechowy piątek 13).
Dlaczego akurat ten dzień? Wszystkiemu winien jest sposób w jaki systemy uniksopodobne liczą czas kalendarzowy (tzw. time_t). Nie jest to zliczanie oparte na kalendarzu gregoriańskim.
Datą "zerową" dla systemów jest w tym przypadku początek tzw. "ery unixa" czyli 1 stycznia 1970 godz 0:00:00 czasu Greenwich. Od tej daty time_t liczony jest sekundami i ma postać 32-bitowej zmiennej. Taka zmienna może przyjąć największą końcową wartość całkowitą 2\'147\'483\'647.
Tak więc po upływie czasu 2\'147\'483\'647 sekund od początku "ery unixa" powinien teoretycznie nastąpić przeskok z powrotem do przyjętej daty narodzin. Na podobnej zasadzie licznik przebiegu w aucie przeskakuje z 999999 na 000000.
Obawy są jak najbardziej poważne, a pluskwa roku 2038 wydaje się groźniejsza niż "milenijna". Eksperci spodziewają się, że najbardziej ucierpią przez nią użytkownicy systemu Linux. Mogą oni doświadczyć "wirtualnego wstrzymania " lub "pętli czasowej".
Szczególnie zagrożone są duże urządzenia telekomunikacyjne i rekordy, które zostały już utworzone, a muszą być kalkulowane dalej, poza rok 2038 (np. polisy ubezpieczeniowe).
Systemy uniksopodobne w tym Linuksy, znalazły zastosowanie w wielu dziedzinach gospodarki, słowem - jest się czego bać.
Teoretycznie możliwe jest przestawienie sposobu zliczania czasu na time_t na zmienną 64-bitową. Będzie to drogie i niełatwe, ale zawsze lepsze niż poddanie się katastrofie.
Zródło:
http://www.earthtimes.org/articles/show/2707.html oraz
http://di.com.pl/n/?lp=9767&r=1.