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 😉
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 😉
Cieszyć się, to najlepsze co możemy robić żeby dać znać temu na Górze, że się poznaliśmy na Dowcipie 😉
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.
Niedawno na JM był artykuł o kryzysie toaletowym ze stycznia 1974 roku. Nie wiem dlaczego jakoś mi się skojarzył z Twoim komentarzem 😉
To najciekawsze proroctwo końca świata jakie zdarzyło mi się do tej pory przeczytać.
Miejmy nadzieję, że końca świata z tego nie będzie. W najgorszym razie siądzie automat w jakiejś elektrowni jądrowej i wypieprzymy matulę Ziemię w pi*du, ale to tylko maleńka, nieważna planetka na zadupiu Drogi Mlecznej, nikt nawet nie zauważy różnicy 😀