Nowoczesne komputery mogą przestać działać 19 stycznia 2038 roku

Rok 2038 może spowodować, że większość nowoczesnych komputerów przestanie działać, jeśli się na to nie przygotujemy. Nie jest to spowodowane jakimś masowym wirusem lub degradacją sprzętu, ma to wszystko związek z tym, jak komputery odmierzają czas.

Niemal każdy komputer odmierza czas za pomocą 32-bitowego procesora i liczy do przodu od 00:00:00 UTC 1 stycznia 1970 roku, zwanego „epoką”. Ten punkt w czasie został ustalony jako standard dla nowoczesnych systemów obliczeniowych, ale jest poważny problem. Siedem sekund po godzinie 3:14 UTC 19 stycznia 2038 roku, w 32-bitowym systemie, który przechowuje te dane czasowe w wielu komputerach, zabraknie pozycji.

Problem jest podobny do problemu Y2K, gdzie dwucyfrowa wartość nie mogła być dłużej używana do kodowania lat 2000 i późniejszych, ale różni się tym, że ten 32-bitowy błąd jest związany z systemami uniksopodobnymi i formatem czasu Uniksa.

Te podobieństwa do błędu Y2K doprowadziły do tego, że problem 2038 jest znany jako Unix Millennium Bug.

The Unix Millennium Bug

Procesory z 32-bitowym oprogramowaniem mogą obsługiwać 232 różne wartości lub 4,294,967,295 różnych liczb w ramach 4GB pamięci. Systemy te przechowują daty i godziny w 32-bitowych kawałkach. W rzeczywistości ta duża liczba różnych wartości jest zmniejszana o połowę na potrzeby przechowywania czasu i innych zastosowań związanych z przechowywaniem danych. Pozostaje 2 147 483 647 dodatnich wartości, w których można przechowywać dane.

To oznacza, że ostatni czas, który może być reprezentowany w 32-bitowym kodzie czasowym systemu Unix, to 231-1 lub 2 147 483 647 sekund po 1 stycznia 1970 roku. Czasy po tym punkcie będą zawijane z powrotem i przechowywane jako liczby ujemne. Jest to spowodowane tym, że w systemie pamięci masowej zabraknie liczb całkowitych do modulacji, pozostawiając tylko znak do zmiany. Komputery będą to interpretować jako 13 grudnia w 1901 roku i dalej, a nie rzeczywistą datę.

To może nie brzmi jak wielka sprawa, ale pomyśl o wszystkich sposobach, w jakie używamy oprogramowania. Jeśli posiadasz licencje, które są znakowane czasem, możesz nagle stracić dostęp do ważnych dokumentów, informacji finansowych i nie tylko.

Problemy nie zaczną się pojawiać w 2038 roku, każde oprogramowanie, które używa przyszłych dat będzie musiało zostać wkrótce naprawione. Programy, które pracują z datami 20 lat w przyszłości, jak fundusze inwestycyjne i zaawansowane programy planujące, musiały zostać naprawione nie później niż w 2018 roku.

Wszystko to może brzmieć jak prosta poprawka, wystarczy zmienić datę końcową metody przechowywania, ale to nie jest takie proste. Inżynierowie komputerowi stojący za grami i aplikacjami, które mają okresy oczekiwania, już wpadają w kłopoty z kodowaniem dat dłuższych niż 19 stycznia 2038 roku. Ponieważ metoda przechowywania danych to 32-bitowy Unix, jest to niemożliwe dla tych programistów z firm trzecich, aby zakodować daty wykraczające poza ten czas.

ZWIĄZANE: 12 OLDEST WEBSITES FROM THE 1980S AND 90S STILL ONLINE TODAY

Ale co z tego, możesz zapytać. Daty zostaną zmienione, programiści już spodziewają się tych problemów, a ewentualne problemy nie będą powodować paniki, tylko zostaną szybko naprawione. Cóż, nie jest to do końca prawda.

Systemy transportowe, w tym sprzęt latający i nowoczesne samochody, używają wbudowanego oprogramowania, które często pozostaje nietknięte. Niemal wszystko w nowoczesnych samochodach jest kontrolowane przez ECU, czyli komputer pokładowy, który używa uniksowego pomiaru czasu do śledzenia dat i godzin. Oznacza to, że ten błąd może potencjalnie przerwać działanie systemów hamulcowych ABS, elektronicznej kontroli stabilności, kontroli trakcji i systemów GPS; wszystkie one mogą być znacząco dotknięte.

Wszystkie te systemy nie będą wymagały dostępu do dat, aby działać, ale niektóre będą, i trudno jest wiedzieć, które z nich zostały zaprogramowane z kodem zależnym od daty.

Więc, jak to naprawić? Nie ma łatwego rozwiązania.

Systemy wbudowane, takie jak te w samochodach i urządzeniach, są zaprojektowane tak, aby przetrwać przez cały cykl życia urządzenia bez aktualizacji oprogramowania. Podłączona elektronika może być szybko naprawiona za pomocą aktualizacji oprogramowania, gdy nadejdzie czas, ale to systemy wbudowane, które prawdopodobnie spowodują największe spustoszenie w 2038 roku, ponieważ większość z nich nie będzie aktualizowana.

Jedną z opcji jest zmiana systemu przechowywania danych 32-bitowej liczby całkowitej na niepodpisaną 32-bitową liczbę całkowitą. Teoretycznie pozwoliłoby to na przechowywanie daty aż do 2106 roku, ale każdy system, który używał daty sprzed 1970 roku napotkałby problemy z dostępem do tych danych.

Jeśli przechowywanie danych zostanie zwiększone do 64-bitowego, napotkalibyśmy problemy z przechowywaniem kompatybilności między starszymi systemami, które używają tylko 32-bitowego przechowywania danych.

Nie ma obecnie uniwersalnego rozwiązania problemu, a nawet najbardziej powszechnie akceptowane poprawki nadal mają błędy w niektórych obszarach użytkowania. Jednakże, jest pozytywna wiadomość na końcu tego.

Większość nowych urządzeń elektronicznych jest zaprojektowana do używania nowszej 64-bitowej metody przechowywania danych. Data integer ten duży będzie rozciągać 20 razy dłużej niż szacowany obecny wiek wszechświata, około 292 miliardów lat na 15:30:08 UTC w niedzielę, 4 grudnia 292,277,026,596. Tak więc Twój iPhone może być po prostu bezpieczny do tego czasu.

Źródło: Wikimedia

Na szczęście problem ten jest dobrze znany i został dokładnie zbadany, co oznacza, że inżynierowie komputerowi prawdopodobnie rozwiążą problemy, przynajmniej z oprogramowaniem, które jest nadal aktualizowane i utrzymywane. Jednakże, jeśli chodzi o tego Priusa z 1997 roku, siedzącego w garażu w 2038 roku? Cóż, możesz nie być w stanie prowadzić go po 3:14 rano w styczniu 2038 roku, dzięki jego niesprawnemu komputerowi pokładowemu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.