20 lat temu komputery miały oszaleć, a z nieba spaść samoloty. Czy pluskwa milenijna była zwykłym mitem?

Daniel Maikowski
31 grudnia 1999 roku cały świat wstrzymał oddech nie tylko z powodu nadejścia nowego tysiąclecia (formalnie miało się ono zresztą rozpocząć rok później). Poważne obawy budziła tzw. pluskwa millenijna, a panikę podsycały media. Czy było się czego bać?
Zobacz wideo

W odniesieniu do problemu roku 2000 (Y2K problem) używamy określeń "pluskwa milenijna" bądź "milenijny robak". Tak naprawdę są to określenia błędne, gdyż zagrożenie to nie było żadnym wirusem, pluskwą czy trojanem, a jedynie efektem krótkowzroczności programistów.

W tym momencie musimy cofnąć się do zamierzchłych czasów, kiedy komputery były wielkimi "szafami" zajmującymi całe pomieszczenia, a laptopy stanowiły jedynie futurystyczną wizję.

W pierwszej połowie XX wieku dane wprowadzane do komputerów umieszczano na tzw. kartach perforowanych. Ograniczona ilość miejsca na kartach sprawiała, że programiści wymyślali coraz to nowe sztuczki, by "upchnąć" jak najwięcej danych, jak najmniejszym kosztem.

Jeden z takich trików dotyczył sposobu zapisywania daty. Ktoś doszedł do wniosku, że nie ma sensu zużywać czterech znaków na zakodowanie roku, gdyż komputerowi wystarczy informacja zawarta w dwóch ostatnich cyfrach. Rok 1938 zapisywano więc jako 38, a rok 1985 - jako 85.

Z tego samego triku korzystano też później, gdy karty perforowane zostały zastąpione dyskami twardymi. W latach 60 i 70 XX wieku ceny dysków były bardzo wysokie, a dla programistów liczył się każdy bit danych, dlatego skrócony zapis daty nadal był wszystkim na rękę.

Mijały kolejne lata, a oprogramowanie wielu komputerów wciąż korzystało z dawnego triku. Nie chodziło nawet o oszczędność danych, ale o to, aby zapewnić kompatybilność nowych aplikacji ze starszymi wersjami. I tak doszliśmy do lat 90, gdy ktoś stwierdził: "Houston, mamy problem!".

Komputerowy Armageddon i samoloty spadające z nieba

Skrócony zapis daty nie przewidywał nadejścia roku 2000. O ile komputery bez problemu mogły odróżnić rok 1938 od 1958 roku, o tyle - przy dotychczasowym zapisie - rok 1901 był przez nie kodowany tak jak rok 2001, co mogło nieść za sobą szereg nieprzewidzianych konsekwencji.

- Zakładano jednak, że do 2000 roku “jakoś sobie z tym poradzimy”, a komputery będą miały dużo większe możliwości - wspomina Michał Jarski, ekspert ds. cyberbezpieczeństwa.

Zapomniano o tym, że wsteczne uzależnienie technologiczne (funkcjonowanie w jednym systemie urządzeń nowoczesnych i starszej generacji, niemożliwych do aktualizacji) jest bardzo trudne do rozwiązania, a sama procedura aktualizacji systemów może okazać się niezwykle czasochłonna.

- dodaje Michał Jarski.

Za przykład weźmy oprogramowanie, z którego korzystały banki. Jeśli klient banku urodził się w 1959 roku, to w 1999 roku komputer obliczyłby wiek odejmując 59 od 99, a w efekcie otrzymałby wynik 40. Wykonując tp same obliczenie w roku 2000 komputer stwierdziłby natomiast, że ten sam klient ma... -59 lat. I nie powinien istnieć... Tak samo jak jego rachunek bankowy....

Podstawowym kłopotem była niemożność dokonania  automatycznej aktualizacji oprogramowania tak, jak to obecnie sobie wyobrażamy. Każdy system dotknięty problemem dwucyfrowego zapisu roku trzeba było ręczne zmodyfikować - bezpośrednio dostać się do tego urządzenia, włożyć dyskietkę, CDROM lub pendrive, wykonać aktualizację, a potem zweryfikować czy wszystko działa

- tłumaczy Michał Jarski.

Banki miały być tylko jedną z ofiar pluskwa milenijnej. Gdy zajrzymy do publikacji medialnych z końcówki lat 90-tych, to znajdziemy tam szereg apokaliptycznych wizji. Ostrzegano np., że 1 stycznia 2000 r. na skutek awarii oprogramowania pokładowego z nieba będą spadać samoloty.

Pluskwa milenijna miała też doprowadzić do problemów z dostępem do wody i prądu, awarii elektrowni atomowych, czy trwałego uszkodzenia domowego sprzętu komputerowego.

Czy rzeczywiście było się czego bać?

Pluskwa milenijna była realnym zagrożeniem, jednak świadomość istnienia tego problemu  pojawiła się na tyle wcześnie, że bez większych przeszkód został on w większości przypadków wyeliminowany, zanim mogło dojść do jakichkolwiek większych komplikacji. Z racji tego, że wizja globalnej awarii wielu systemów komputerowych jest atrakcyjna medialnie, mieliśmy do czynienia z dość sporym rozdmuchaniem tematu, mimo że realnie mógł dotyczyć niewielu przestarzałych rozwiązań.

- podkreśla Piotr Kupczyk z Kaspersky Lab Polska.

Medialną panikę skutecznie podsycały niektóre firmy, licząc na łatwy zarobek. Oferowały np. instalację oprogramowania "kompatybilnego z rokiem 2000", jak również przetestowanie istniejącego oprogramowania pod kątem zgodności z "Y2K".

Swoją szansę zwietrzyły też sklepy, które reklamowały komputery oraz inny sprzęt zgodny z rokiem 2000. Było to o tyle absurdalne, że problem roku 2000 nie dotyczyły sprzętu, ale oprogramowania. Takie "oferty" były więc zwykłym naciąganiem klientów na pieniądze.

Oczywiście takie apokaliptyczne wizje znakomicie działały na wyobraźnię i pluskwa milenijna”urosła do niebotycznych rozmiarów. Wykorzystywana przez nieuczciwe firmy do zarobienia na usługach i produktach mając zapobiec “Y2K”. Z drugiej strony, wydaje się, ze właśnie dzięki uświadomieniu naszej zależności od systemów IT uniknięto największych kłopotów.

 - zauważa Michał Jarski

Płyta z oprogramowaniem zgodny z YTKPłyta z oprogramowaniem zgodny z YTK Runxctry/CC BY-SA 4.0

Co stało się 1 stycznia 2000 roku?

Nadszedł 1 stycznia 2000 r. Wystrzeliły korki od szampanów. Komputerowy Armageddon wcale jednak nie nastąpił. Oczywiście pewne problemy się pojawiły, ale miały charakter incydentalny.

Pracownicy japońskiej  elektrowni jądrowej w Ishikawie natknęli się na awarię oprogramowania monitorującego poziom radiacji, a ich koledzy z Onagawy mogli najeść się strachu, gdy dwie minuty po północy rozbrzmiał fałszywy alarm. W dwóch australijskich stanach doszło do awarii automatów biletowych, a w Delware (USA) przestało działać 150 automatów hazardowych.

Do najpoważniejszego incydentu doszło w Sheffield w Wielkiej Brytanii, gdzie na skutek błędu 154 ciężarne kobiety otrzymały niepoprawne oceny ryzyka wystąpienia u płodu zespołu Downa . Na skutek błędu dwie kobiety dokonały aborcji (program źle obliczył ich wiek), a cztery urodziły dzieci z zespołem Downa, choć otrzymały informację, że należą do grupy niskiego ryzyka.

Nawet ten jeden tragiczny przypadek wyraźnie pokazuje, że problem roku 2000 rzeczywiście istniał. Z perspektywy 20 lat wydaje się jednak, że - w wymiarze globalnym - medialna panika wokół milenijnej pluskwy była zdecydowanie niewspółmierna do rzeczywistego zagrożenia.

Problem roku 2038

W ostatnim czasie coraz głośniej mówi się o problemie roku 2038. Wynika ze sposobu zliczania czasu stosowanego w niektórych wersjach systemu Unix, ale również w programach, które stosują taki sposób zapisu czasu, mimo że nie bazują na systemach uniksowych. 

Mówiąc precyzyjniej, informacje o czasie zapisuje się w takich aplikacjach z użyciem 32-bitowej liczby sekund, które upłynęły od 1 stycznia 1970 r. (data rozpoczęcia tzw. ery uniksa). Maksymalna liczba sekund dla wartości 32-bitowej wynosi 2 147 483 647, co daje datę 19 stycznia 2038 r. Po przekroczeniu tej wartości licznik sekund osiągnie wartość ujemną lub zostanie wyzerowany.

- podkreśla Piotr Kupczyk.

W tym wypadku rozwiązaniem problemu jest przejście na zapis daty w formacie 64-bitowym. Co ciekawe, po przejśćiu na nowy zapis analogiczny problem również się pojawi, ale dopiero za około 292 miliardy lat. Jest więc sporo czasu, aby przygotować się na kolejny Armageddon.

Więcej o:
Komentarze (60)
20 lat temu komputery miały oszaleć. Czy słynna pluskwa milenijna była mitem?
Zaloguj się
  • kuba_wu

    Oceniono 17 razy 15

    "używamy określeń "pluskwa milenijna" bądź "milenijny robak". Tak naprawdę są to określenia błędne, gdyż zagrożenie to nie było żadnym wirusem, pluskwą czy trojanem,"

    Szanowny autorze.
    Millenium BUG jest określeniem całkowicie poprawnym.
    Bug to po prostu błąd w kodzie. Nie oznacza ani wirusa, ani robaka, ani trojana.

  • geminix

    Oceniono 14 razy 10

    Po pierwsze: nie "efektem krótkowzroczności programistów" tylko efektem dziadowania managerów średniego szczebla, szukania absurdalnych oszczędności przez zarządy firm, uczelni i instytucji oraz ich - a nie programistów - krótkowzroczności. Programiści znali problem, ograniczenia i ryzyko od "zawsze". To różnego szczebla "derehtory" miały to gdzieś, bo "jakoś to będzie" i "najwyżej IT posiedzi po godzinach".
    Po drugie: nieprawdą jest, że "problem roku 2000 nie dotyczyły sprzętu, ale oprogramowania" ponieważ każdy, nawet "goły" sprzęt zawiera już jakieś oprogramowanie i należało je (choćby osławiony "BIOS") przetestować i - najczęściej - wymienić albo zaktualizować. Problem sprzętu więc nie był tak błahy i "marketingowy" jak pan redaktor go przestawia.

  • m.godwin

    Oceniono 10 razy 8

    Nie o miejsce na kartach perforowanych chodziło, panie redaktorze, bo papier jest tani. Chodziło o miejsce w pamięci.

  • o4975957

    Oceniono 10 razy 4

    "...komputer stwierdziłby natomiast, że ten sam klient ma... -59 lat. I nie powinien istnieć..."

    Komputer niczego takiego by nie "stwierdził", bo nie jest istotą myślącą. Po prostu posługiwałby się liczbą -59 tam gdzie to możliwe, albo zaliczył obsługiwany, lub nieobsługiwany wyjątek (w zależności jak jest napisany kod). Więc po prostu zalogowałby błąd, lub się wykrzaczył.

  • michalng

    Oceniono 4 razy 2

    No pozostaje jeszcze problem roku 10K ;-) obecny system zapisu roku wyczerpie sie w 9999 roku.

  • przechrztaimason

    Oceniono 2 razy 2

    A Garcia Marquez stracił nowonapisana książkę, bo jego komputer wykonał komendę "koniec zbioru" i całkowicie się zresetował. Tym niemniej problem był, a następstwa wielkiej wymiany komputerów całkiem ciekawe. Otóż przez prawie cały rok 2000 sprzedaż nowych komputerów była niewielka co skończyło się kłopotami wielu producentów i sprzedawców.

  • bosmak

    Oceniono 4 razy 2

    ”Maksymalna liczba sekund dla wartości 32-bitowej wynosi 2 147 483 647, co daje datę 19 stycznia 2038 r. Po przekroczeniu tej wartości licznik sekund osiągnie wartość ujemną lub zostanie wyzerowany.”

    Drogi Panie ekspercie, na 32 bitach można zakodować liczbę dwukrotnie większa. Typ danych: unsigned int. Wobec tego albo licznik osiągnie wartość ujemną albo mamy spokój na kilkadziesiąt kolejnych lat

  • druga_wieza

    Oceniono 8 razy 2

    Ten artykuł to stek bzdur.

    A propos y2k: problemy zaczęły się na kilka lat przed rokiem 2000 i również wtedy zaczęto poprawki.

  • jac_l_w

    Oceniono 1 raz 1

    Do tych, którzy dobrze wyszli na Y2K zdecydowanie należy doliczyć dziennikarzy, którzy tak jak w przypadku globalnego ocieplenia starali się na wyprzódki ostrzegać przed katastrofalnymi i nieuniknionymi skutkami problemu.

Aby ocenić zaloguj się lub zarejestrujX