PROBLEM ROKU 2000

TO JUŻ ZA KILKA DNI

Pierwszego stycznia dwutysięcznego roku obudzimy się w innym świecie. Nasze konta bankowe będą puste, podczas noworocznego toastu zgasną - i to nie na chwilę - wszystkie żarówki, pociągi wjadą nie na te tory, na które powinny, spadną samoloty, nie będzie można zadzwonić po policję czy straż pożarną. Będzie to rok kolosalnych strat gospodarczych, które dotkną każdego z osobna i w perspektywie całe społeczeństwo. A wszystko to stanie się z winy niefrasobliwych programistów komputerowych, którzy swego czasu nie przewidzieli, że ich informatyczne dzieło przetrwa te kilkanaście lat, które pozostały do ostatniego roku dwudziestego wieku.

Czy to fikcja, czy smutna rzeczywistość, która stanie się naszym udziałem? Nie sposób dziś udzielić autorytatywnej odpowiedzi na to pytanie. Dziś można jedynie jeszcze raz przypomnieć sobie, na czym właściwie polega tzw. problem roku 2000, a także - być może po raz ostatni - uświadomić sobie, czy jesteśmy odpowiednio przygotowani na tę godzinę próby.

Źródłem problemu roku 2000 były czasy, w których sprzęt komputerowy był drogi, a jego możliwości techniczne - w porównaniu do sprzętu dostępnego dziś - niewielkie. Dla programisty w latach 70. każdy bajt pamięci był skarbem na wagę złota. Przywiązywano wtedy duże znaczenie do optymalizacji programów, czyli do tworzenia ich w taki sposób, aby w niewielkiej dostępnej pamięci można było pomieścić jak największy (i, oczywiście, szybko działający) program, a także jak największą ilość danych. Rzecz jasna, wśród tych danych musiały się znaleźć i daty. To właśnie dążenie do optymalizacji sposobu zapisu daty spowodowało problem roku 2000.

Ówcześni programiści otóż wymyślili, że skoro w danych występuje rok (..., 1974, 1975, 1976, 1977... ), a w każdym zapisie tego roku powtarzają się cyfry "1" i "9", to przy dużej liczbie dat marnuje się wiele miejsca w pamięci komputera. Skoro tak, to nic prostszego, jak usunąć "19" z zapisu daty, pozostawiając w pamięci jedynie dwie ostatnie cyfry roku. Te cyfry miały być po powtórnym odczycie z pamięci interpretowane w ten sposób, że uzupełnia się je o "19" otrzymując pełny rok. Jak wymyślili, tak i zrobili. Pozostawiając swoim następcom (i, co gorsza, użytkownikom swoich programów) problem Y2K.

Na kilka lat bowiem przed ostatnim rokiem XX wieku (warto przecież pamiętać, że do nadejścia trzeciego tysiąclecia pozostał jeszcze jeden pełny rok 2000, a pojawiające się tu i ówdzie anonsy o nadchodzącym za miesiąc końcu wieku są jedynie dowodem nieuctwa i ignorancji) zauważono, że zapis w pamięci "00" zostanie przez oprogramowanie komputerowe zinterpretowany jako rok 1900, a nie, jak by chciano, rok 2000. Co zrozumiałe, kolejny rok 2001 niewiele będzie miał wspólnego z odyseją kosmiczną Kubricka, a raczej zostanie zinterpretowany przez oprogramowanie komputerowe jako rok rozkwitu sterowców Zeppelina. I tak dalej. Skutki nieprawidłowej interpretacji daty łatwo sobie wyobrazić. Ot, choćby odsetki od kredytu wziętego w roku 1999, a obliczone w roku 2000. Nie za jeden rok. Te odsetki mogły by być obliczone za okres stu lat, a nie wykluczone, że bank zwróciłby je kredytobiorcy.

Niestety, gdyby to tylko o ten jeden błąd chodziło! Okazało się już wkrótce, że interpretacja "00" to tylko wierzchołek góry lodowej. Programiści, zajęci merytoryczną stroną swoich programów, nie zauważyli również, że rok 2000 jest rokiem przestępnym (a traktowano go jako nie przestępny), a także potraktowali niektóre daty nie jak daty, ale jako oznaczenia daty minimalnej (np. 00) i maksymalnej (np. 99). O nieprawidłowym określeniu początku wieku XXI już wspomnieliśmy. Inne błędy i niedopatrzenia programistów związane z manipulacjami na datach niech zakryje zasłona litościwego milczenia.

Pora bowiem przejść do dalszej części problemów związanych z rokiem 2000, tym razem dotykających sprzętu komputerowego. Mogłoby się wydawać, że dotychczas opisane kłopoty nie są zbyt groźne. Jeśli programy są złe, to należy je poprawić lub zastąpić nowymi. Abstrahując od wyrażenia opinii, czy w ogóle, a jeśli tak, to na ile byłoby to wykonalne, nie sposób nie zauważyć, że programy w komputerach można wymienić tylko wtedy, jeśli nie są one związane trwale ze sprzętem komputerowym. Tak było dawniej, ale od pewnego czasu już nie jest. Ten czas nastąpił wtedy, gdy - w związku z rozwojem technologii mikroprocesorowej - wymyślono w latach 80. komputer osobisty (PC), zwany czasami - swojsko - pecetem. Fragmentem tego komputera jest oprogramowanie immanentnie związane ze sprzętem (BIOS), obsługujące podstawowe czynności życiowe komputera, w tym odmierzający upływ czasu zegar czasu rzeczywistego. Wymiana tego oprogramowania to często konieczność wymiany komputera (a przynajmniej jego płyty głównej lub jej części) lub jego daleko idącej modernizacji. Zlekceważenie przez użytkownika problemu roku 2000 w komputerach osobistych może prowadzić do sytuacji, w której 1 stycznia 2000 roku komputer będzie np. wskazywał datę 4 stycznia roku 1980 (przyjęto ją za bezpieczną datę początkową, bo przed nią komputery osobiste nie istniały). Tę błędną informację przekaże on systemowi operacyjnemu i programom użytkowym, skutecznie dezorganizując ich działanie i sprawiając, że komputer przestanie być użytecznym narzędziem pracy. Jakby tego było mało, okazało się podczas testowania komputerów rzekomo przystosowanych do pracy w roku 2000 i później, że niektóre egzemplarze pecetów mimo podjęcia działań usprawniających zachowują się losowo, uniemożliwiając normalną pracę.

Podobne problemy mogą wystąpić w niezliczonych urządzeniach przeznaczonych nie tylko do wykorzystania przemysłowego, ale i w sprzęcie domowego użytku. W wielu z nich zastosowano specjalizowane mikroprocesory ze stałym oprogramowaniem, w którym również oszczędzano pamięć.

Tyle o zagrożeniach. Warto się zastanowić, czy mogą one nas dotknąć, a jeśli dojdziemy do wniosku, że mogą, co jeszcze możemy zrobić, aby zminimalizować ich skutki.

Przede wszystkim należy założyć, że problem roku 2000 jest znany informatykom już od pewnego czasu. Wiedzieli oni, co zrobić, aby usunąć zagrożenia, i należy mieć nadzieję, że je usunęli. Nawet jeśli zdajemy sobie sprawę z tego, że w naszym kraju problem roku 2000 starano się rozwiązywać oddolnie, a nie odgórnie, co mogło skutkować bądź brakiem koordynacji, bądź brakiem środków, bądź też i jednym, i drugim na raz. W dalszej kolejności warto sprawdzić, jak z problemem roku 2000 poradzi sobie sprzęt i oprogramowanie, za które osobiście odpowiadamy. Jeśli jest to komputer PC, to stosowne oprogramowanie testujące można znaleźć na uczelnianej stronie WWW - http://www.us.edu.pl/uniwersytet/rok2000/. Wynik działania testów powie, czego możemy się spodziewać po Nowym Roku. Jakie działania podejmiemy później, zależy od nas. Na koniec warto zapoznać się ze stronami WWW producentów oprogramowania, które eksploatujemy. Znajdziemy tam, trzeba ufać, że rzetelne, informacje o zgodności konkretnych wersji oprogramowania z rokiem 2000. Możliwe, że można się pogodzić z częściowo wadliwym działaniem programu w roku 2000. Możliwe też, że niezbędny okaże się zakup nowego oprogramowania jeszcze w tym miesiącu.

Im bardziej jesteśmy zależni od komputerów i ich oprogramowania, tym większe prawdopodobieństwo, że na własnej skórze odczujemy atak problemu roku 2000. W tym kontekście może się okazać, że fakt, iż nasza działalność zawodowa (a często i życie osobiste) niezbyt silnie jeszcze zależy od informatyki, jest naszym sojusznikiem. Trzeba się jednak liczyć z tym, że za następne 1000 lat problem roku 3000 już nie wystąpi. A wtedy nie będzie już usprawiedliwienia: "nie używałem komputera, bo bałem się kłopotów związanych z przełomem tysiącleci".

I tym optymistycznym akcentem wypada zakończyć grudniowe dywagacje na temat problemu roku 2000. Czy ten optymizm był uzasadniony, przekonamy się już w styczniu, i to co najmniej dwa razy: po raz pierwszy w Nowy Rok, a po raz drugi w dniu styczniowej, obliczonej rzecz jasna przez komputery, wypłaty.

* * *

Podczas pisania tego artykułu korzystano z serwisów internetowych http://www.rok2000.com.pl/ i http://www.rok2000polska.pl/ , gdzie można znaleźć więcej szczegółowych informacji o problemie roku 2000.

Autorzy: Maciej Uhlig