Tego dnia komputery cofną nas o 140 lat

Poznaj "Problem roku 2038".

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 25 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 2038 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 292 miliardy lat, a przecież wiek Ziemi szacowany jest na „zaledwie” 4,5 miliarda lat. Jeszcze mamy czas…

Chcesz być na bieżąco z CHIP? Obserwuj nas w Google News