![]() |
RAPORT TECHNICZNY |
W miarę zbliżania się roku 2000 coraz częściej pojawiają się wątpliwości dotyczące przystosowania oprogramowania do przejścia w kolejne tysiąclecie. Pragniemy udzielić Państwu odpowiedzi na trzy podstawowe związane z tym pytania:
Czym jest
problem roku 2000?
Na całym świecie przyjęte jest aby do określenia bieżącego roku używać tylko
dwóch jego ostatnich cyfr. Stwierdzenia typu "urodziłem się w 71" są dla nas
całkowicie jasne. Tendencja ta została przeniesiona do dziedziny programowania. Kilka
czy kilkanaście lat temu nikt nie przypuszczał, że jego program będzie wciąż
wykorzystywany w następnym stuleciu. Program komputerowy numerujący lata tylko dwoma
ostatnimi cyframi nie rozpoznaje dnia 1 stycznia 2000 jako następnego po 31 grudnia 1999.
Spowoduje to błędy w obliczeniach daty. Problemy mogą wystąpić przy określaniu lat
przestępnych. Lata podzielne przez cztery są przestępnymi za wyjątkiem pierwszego roku
w nowym wieku, który musi dzielić się przez 400. Lata 1700, 1800 i 1900 nie były
przestępnymi, natomiast 2000 będzie. Niektóre aplikacje są tak zaprogramowane, że nie
będą traktować roku 2000 jako przestępnego. Po 28 lutego przejdą od razu do 1 marca.
I tym razem obliczenia daty będą nieprawidłowe. Program zaprojektowany tak, by
bezproblemowo przejść w następny wiek powinien poprawnie operować datą przed, w
trakcie i po roku 2000. Powinien też rozpoznać rok 2000 jako przestępny. Należy
zwrócić uwagę na to, że aplikacja posiadająca prawidłowo zaimplementowaną datę
może działać niewłaściwie za sprawą systemu operacyjnego lub innych programów.
Jakie znaczenie
ma data dla systemu Sophos Anti-Virus
Zadaniem Sophos Anti-Virus jest wykrywanie i usuwanie wirusów komputerowych. Daty nie
mają dla niego praktycznego znaczenia. Nawet jeśli system jest używany razem z
programami, które podają nieprawidłową datę, w żadnym stopniu nie wpłynie to na
ochronę antywirusową jaką system zapewnia. Sophos Anti-Virus wykorzystuje obliczenia
związane z datą jedynie w dwóch przypadkach. Pierwszym z nich jest moment, w którym
system jest startowany. Porównywana jest wtedy data systemowa z datą wygenerowaną przez
Sophos Anti-Virus i przechowywaną w pliku. Zapisana jest ona w formacie YYYYDDMM
wykorzystującym cztery cyfry do zapisu roku. Data systemowa powinna zawsze zgadzać się,
lub ewentualnie być późniejsza od daty wygenerowanej przez system antywirusowy. Jeśli
tak nie jest na ekranie pojawia się komunikat: "System clock date is incorrect"
(data systemowa jest nieprawidłowa). W przypadku, gdy data systemowa jest większa o
ponad cztery miesiące od daty Sophos Anti-Virus wyświetlona zostaje informacja:
"Usefull life of SWEEP has been exceeded" (ta wersja SWEEPa jest już
przestarzała). Pomaga to ostrzec użytkowników przed używaniem nieaktualnego
oprogramowania antywirusowego, które może nie wykryć nowopowstałych wirusów. Po raz
drugi Sophos Anti-Virus korzysta z daty kiedy ładowane są pliki IDE zawierające
identyfikatory nowych wirusów. Pliki te wysyłane są do użytkowników w wypadku jeśli
pomiędzy aktualizacjami zostanie wykryty nowy wirus. Informacja o nowym wirusie jest
później umieszczana w bazie wirusów następnej wersji systemu. Oznacza to, że każdy
plik IDE starszy niż trzy miesiące jest całkowicie zbędny. W przypadku natrafienia na
taki właśnie plik Sophos Anti-Virus wyświetla komunikat: "File
C:\SWEEP\NEWVIRUS.IDE is older than 90 days" (plik C:\SWEEP\NEWVIRUS.IDE ma więcej
niż 90 dni). Wyliczenie "wieku" pliku IDE odbywa się na zasadzie porównania
daty będącego w użyciu pliku z datą systemową.
Jak przekonać
się czy Sophos Anti-Virus jest przystosowany do przejścia w nowe tysiąclecie?
Na początek należy zainstalować aktualną wersję Sophos Anti-Virus na komputerze
przeznaczonym do testów a następnie uruchomić system antywirusowy. Upewnić się, że
nie są wyświetlane żadne komunikaty mające związek z datą. Następnie cofnąć datę
systemową o jeden rok i ponownie uruchomić Sophos Anti-Virus. Powinien pojawić się
komunikat: "System clock date is incorrect". Ustawić datę w systemie o rok
naprzód i znów wystartować Sophos Anti-Virus. Tym razem pojawi się komunikat:
"Usefull life of SWEEP has been exceeded". Taka sama informacja będzie
wyświetlona jeśli datę systemową ustawimy na 31 grudnia 1999 a następnie na 1
stycznia 2000. Oznacza to, że system prawidłowo rozpoznaje pierwszy dzień dwudziestego
pierwszego wieku jako następujący po ostatnim dniu dwudziestego. To czy oprogramowanie
zainstalowane na testowym komputerze uznaje rok 2000 jako przestępny czy też nie dla
systemu Sophos Anti-Virus nie ma znaczenia gdyż jest to kwestia jednego dnia.
© 1998 SAFE COMPUTING Sp. z o.o., http://www.safecomp.com/, email: info@safecomp.com
Tel/fax (022) 6198956, 6700756, 6700956; 03-733 Warszawa, ul.Targowa 34