Tego dnia komputery cofną nas o 140 lat

19 stycznia 2038, o 3:14:08 nad ranem, uniksowe zegary cofną datę o prawie 140 lat, do roku 1901.

Tego dnia komputery cofną nas o 140 lat
Źródło zdjęć: © SXC.hu

24.01.2013 10:53

Stanie się tak, ponieważ czas we wspomnianych wyżej systemach przechowywany jest jako 32-bitowa liczba całkowita z możliwością zapisu liczb ujemnych (signed 32-bit integer). Z kolei czas jest zapisywany jako liczba sekund od początku ery Uniksa (1970-01-01). Za 2. lat liczba tych sekund osiągnie graniczną wartość, którą da się zapisać jako liczbę dodatnią i kolejne liczby binarne będą interpretowane jako liczby ujemne, przez co po 2038 roku czas będzie obliczany poprzez odjęcie odpowiedniej liczby sekund od 1 stycznia 1970.

Większość z nas nie jest świadoma istnienia tego problemu. Co więcej, nawet fachowcy z branży IT mają tendencję do bagatelizowania sprawy - w końcu 203. rok zacznie się dopiero za 25 lat. Mikko Hypponen z F-Secure uważa jednak, że programiści i projektanci infrastruktury informatycznej już teraz powinni zastanowić się nad możliwymi rozwiązaniami - warto bowiem pamiętać, że na architekturze uniksowej oparte są wszystkie urządzenia z zainstalowanym systemem Android (niezależnie od wersji) oraz iOS.

Co więcej, wszystkie nowe systemy smartfonowe również są pisane w oparciu o Uniksa. Jedynym systemem, który jest całkowicie odporny na problem roku 2038. jest Windows Phone, ponieważ Microsoft używa innego sposobu zapisu daty.

Gdyby czas zapisywać 64-bitową zmienną (time_c), to podobny problem pojawiłby się dopiero za 29. miliardy lat, a przecież wiek Ziemi szacowany jest na "zaledwie" 4,5 miliarda lat. Jeszcze mamy czas...

Wybrane dla Ciebie
Komentarze (211)