Błąd w Uniksie, który może doprowadzić do wielkich problemów

Na początku roku niektóre drukarki oraz kasy fiskalne nie były w stanie wystawić paragonów z właściwą datą. Sprawcą zamieszania był "błąd zegara". Oprócz utrudnień w sprzedaży, błąd nie stanowił większego problemu. Jednak systemy informatyczne i maszyny, z których korzystamy każdego dnia, mają wady wynikające z niemożliwości przewidzenia każdego scenariusza ich użytkowania. Największym problemem, z jakim będzie musiała zmierzyć się branża IT, jest kwestia systemów opartych na Uniksie.

Więcej o problemach z kasami fiskalnymi można przeczytać w serwisie Biznes Interia.

Zaprojektowany w 1969 r. Unix (oraz spokrewnione z nim rozwiązania jak Linux i język programowania C) wykorzystują 32-bitowy sposób zapisu daty. Urządzenia pracujące pod kontrolą tego systemu czas liczą od początku tzw. ery uniksa, czyli 1 stycznia 1970 r. Po upływie 2 147 483 647 sekund (stanie się tak 19 stycznia 2038 r.) wyczerpie się miejsce na kolejny zapis, a stan licznika wskaże wartość ujemną - będzie to data: 13 grudnia 1901 r. Nikt nie wie, jak wtedy zachowają się komputery i urządzenia, które pracują na Uniksie lub Linuksie używającym 32-bitowego czasu.

Reklama

Mechanizm zapisywania czasu w 32-bitowej zmiennej grozi większym niebezpieczeństwem niż pluskwa milenijna na przełomie lat 1999 i 2000. Ze względu na niskie koszty implementacji oraz użytkowania zarówno Unix, jak i spokrewniony Linux są wykorzystywane przez wiele komputerów i urządzeń elektronicznych - częściej przez biznes niż przez konsumentów, choć to oni mogą zapłacić najwyższą cenę. Co więcej, wiele z tych urządzeń do dziś wykorzystuje 32-bitowe procesory, które ze względu na cenę i niższy pobór energii niż ich nowsze odpowiedniki mogą być stosowane w urządzeniach, które składać się będą na internet rzeczy.

Na Uniksie lub Linuksie często pracują m.in. urządzenia medyczne (np. rozruszniki serca), zainstalowane w samolotach systemy pokładowe, bankomaty, a nawet elektrownie atomowe.

Rozwiązanie ma 64 bity

Wyeliminowanie potencjalnego zagrożenia, jakie może wyniknąć z cofnięcia zegara, wymaga przejścia na 64-bitowy zapis liczenia czasu. Dzięki temu licznik zostanie zresetowany dopiero za 292 mld lat. Procedura nie jest jednak prosta. Świadome firmy oraz instytucje prowadzą od kilku lat audyt systemów operacyjnych. W wielu przypadkach nie obędzie się jednak bez przepisania praktycznie całego, albo dużej części, kodu źródłowego.

Wiadomo jednak, że po cichu wdrażane są stosowne poprawki. Niestety, iluzja aż 18 lat do potencjalnego zagrożenia sprawia, że nie każdemu śpieszy się z aktualizacją swojego kodu. Błąd u Uniksie nie jest jednak jedynym problemem, który został zidentyfikowany przez ekspertów. 

Błąd, który może doprowadzić do tragedii

Poza powszechnie znanym problemem pluskwy milenijnej, który spowodował dwucyfrowy system zapisu daty w wielu programach i komputerach, namiastką awarii, z jakimi możemy zetknąć się w 2038 r.,  jest m.in. problem z sekundą przestępną. Jest to dodatkowa sekunda dodawana w celu zsynchronizowania czasu uniwersalnego z czasem słonecznym na podstawie obserwacji astronomicznych. Stosowanie jej wynika z niedostatecznej dokładności, z jaką wyznaczono długość doby w latach 50. XX w. i zmian okresu obrotu Ziemi oraz wynikającej stąd długości sekundy. Jej dodawanie potrafi jednak zakłócić pracę komputerów. 

Airbus 350 ma błąd, który sprawia, że samolot europejskiego producenta musi być resetowany co 149 godzin ze względu na błąd, który może zagrozić najważniejszym systemom na pokładzie.

Dla wszystkich innych modeli, przewoźnicy muszą zastosować reset, zanim włączone systemy osiągną 149 godzin pracy. Pierwotnie usterka tego typu pojawiła się już w 2017 roku - jej zignorowanie mogło doprowadzić do całkowitej lub częściowej utraty systemów sterujących oraz samej awioniki.

Od tego momentu nie jest już daleko do katastrofy. Nowe egzemplarze samolotów Airbusa nie posiadają opisywanego błędu - w przypadku starszych maszyn, nie wiadomo ilu przewoźników zdecydowało się na aktualizację oprogramowania rozwiązującego problem. EASA ostrzega więc na wszelki wypadek.

Rozwiązanie problemu dla Airbusa A350-941 jest proste: obsługa musi albo wyłączyć samolot albo zainstalować wspomnianą aktualizację.


INTERIA.PL
Reklama
Reklama
Reklama
Reklama
Reklama
Strona główna INTERIA.PL
Polecamy