19 stycznia 2038

Pamiętacie problem roku 2000? W 2038 będzie jeszcze gorzej…

Data będąca tytułem dzisiejszego wpisu jest ważna. Jeżeli jej dożyję, będę wtedy miał prawie 64 lata (to ładna, okrągła liczba jest) – a dokładniej rzecz biorąc do 64 lat będzie mi brakowało jeszcze około dwóch miesięcy.

Ale data 19 stycznia 2038 roku jest ważna nie dlatego, że jakiś gość próbujący udawać blogera będzie mieszkał na powierzchni swojej planetki przez ilość czasu równą, pi x oko, ilości sześćdziesięciu czterech okrążeń tejże planetki wokół lekko już ze starości pożółkłej gwiazdy macierzystej. O, co to to nie. Takie sprawy są ważne co najwyżej dla pojedynczych osób, a ja tu mówię o wadze globalnej.

Otóż 19 stycznia 2038 roku, kilka sekund po godzinie 3:14 nad ranem, nastąpi przekręcenie licznika we wszystkich 32-bitowych urządzeniach elektronicznych używających standardu linuksowego do mierzenia czasu.

Ale że o ssso chozzzzi?

Bieżący czas jest w linuksowych systemach reprezentowany jako liczba sekund, które upłynęły od północy pierwszego stycznia 1970 roku.

Jest to liczba całkowita ze znakiem. Innymi słowy – liczba 31-bitowa plus jeden bit na znak.

Największa liczba, którą można uzyskać za pomocą 31 bitów to 231-1 czyli 2 147 483 647 – dodanie jedynki do tej liczby sprawi, że liczba przestanie „mieścić się” w 31 bitach i się „odwróci” – zamieni się na -2 147 483 648 (minus dwa miliardy z hakiem), czyli jakieś 68 lat PRZED pierwszym stycznia 1970 roku (a konkretnie 13 grudnia 1901 roku, ciut przed godziną 2:46)

Jak można domniemywać konsekwencje takiego stanu rzeczy mogą być rozmaite. Pół biedy jeżeli kwestia dotyczy tostera; trzeba tylko uważać, żeby nie przyrządzać tosta o trzeciej nad ranem – w przeciwnym razie toster może podjąć próbę wyłączenia grzałki dopiero po paruset latach, co może uruchomić nasz alarm ppoż, o ile takowy posiadamy.

Gorzej jeżeli błąd pojawi się w czasie lotu samolotem, w jakimś elemencie sterującym autopilotem. Albo w aucie, w elektrowni lub w zapalniku bomby. Tu konsekwencje mogą być dużo bardziej groźne[citation needed].

Problem dotyczy głównie oprogramowania wbudowanego na stałe w różne sprzęty – tzw. embedded code czyli programy „wlutowane na stałe” w hardware lodówki, motocykla czy czujki ruchu. W przypadku (szeroko pojętych) komputerów problemu praktycznie nie ma, ponieważ większość „zabawek” używa teraz systemów 64-bitowych, a nawet jeżeli nie, to istnieją znane i sprawdzone metody na „obejście” problemu w systemach 32-bitowych.

Reasumując: jeżeli, Czytelniku, będziesz żył w dniu 19 stycznia 2038 roku, spodziewaj się Hiszpańskiej Inkwizycji 😉

Autor: xpil

Po czterdziestce. Żonaty. Dzieciaty. Komputerowiec. Krwiodawca. Emigrant. Rusofil. Lemofil. Sarkastyczny. Uparty. Mól książkowy. Ateista. Apolityczny. Nie oglądam TV. Uwielbiam matematykę. Walę prosto z mostu. Gram na paru instrumentach. Lubię planszówki. Słucham bluesa, poezji śpiewanej i kapel a’capella. || Kliknij tutaj po więcej szczegółów ||

Dodaj komentarz

6 komentarzy do "19 stycznia 2038"

Powiadom o
avatar
Sortuj wg:   najnowszy | najstarszy | oceniany
marga77
Gość

i teraz nie wiem czy zacząć płakać czy zacząć się cieszyć… 64 będę miała za sześć lat , a 2038 chyba już nie doczekam hmmm 😉

Pharlap
Gość

Pamiętam co się wyrabiało gdy nadchodził rok 2000. Pracowałem w firmie ubezpieczeniowej. Ponad 3 miesiące spędziliśmy na przetestowaniu wszystkich programów na okoliczność zmiany stulecia. Zgodnie z przewidywaniami nie była potrzebna żadna zmiana.
Na froncie domowym – kupiliśmy bbq na gaz – na okoliczność, że nie będzie gazu. Wymieniliśmy baterie w latarkach – na okoliczność, że nie bedzie prądu. Nalaliśmy pełno wody do czajnika.
I dzięki tym zabiegom dozyliśmy dnia dzisiejszego.
Przyznaję, że ta przestępna sekunda w unixie wygląda duzo grożniej, ale też pozostało znacznie wiecej czasu na zabezpieczenie systemów.

Błazen Podróżny
Gość

To najciekawsze proroctwo końca świata jakie zdarzyło mi się do tej pory przeczytać.

wpDiscuz