Anul 2038 ar putea face ca majoritatea computerelor moderne să nu mai funcționeze dacă nu ne pregătim pentru asta. Acest lucru nu este din cauza vreunui virus masiv sau a degradării hardware-ului, ci are legătură cu modul în care computerele țin evidența timpului.
Principal fiecare computer ține evidența timpului folosind un procesor pe 32 de biți și numără în avans de la 00:00:00 UTC la 1 ianuarie 1970, denumită „epoca”. Acest punct în timp a fost stabilit ca standard pentru sistemele de calcul moderne, dar există o problemă majoră. La șapte secunde după ora 3:14 am UTC din 19 ianuarie 2038, sistemul pe 32 de biți care stochează aceste date de timp în multe computere va rămâne fără poziții.
Problema este similară cu cea legată de Y2K, unde o valoare de 2 cifre nu mai putea fi folosită pentru a codifica anii 2000 sau mai târziu, dar este diferită prin faptul că această eroare pe 32 de biți este legată de sistemele de tip Unix și de formatul de timp Unix.
Aceste asemănări cu bug-ul Y2K au dus pe scară largă la faptul că problema 2038 este cunoscută sub numele de Unix Millennium Bug.
The Unix Millennium Bug
Procesoarele care rulează software pe 32 de biți pot gestiona 232 de valori diferite sau 4.294.967.295 de numere diferite în 4GB de memorie. Aceste sisteme stochează datele și orele în bucăți de 32 de biți. În realitate, acest număr mare de valori diferite este înjumătățit pentru păstrarea timpului și alte aplicații de stocare a datelor. Astfel, rămân 2.147.483.647 de valori pozitive în care se pot stoca date.
Aceasta înseamnă că ultima oră care poate fi reprezentată în codul de timp pe 32 de biți al Unix este 231-1 sau 2.147.483.647 de secunde după 1 ianuarie 1970. Timpii după acest punct se vor înfășura înapoi și vor fi stocați ca numere negative. Acest lucru este cauzat de faptul că sistemul de stocare a rămas fără numere întregi pe care să le moduleze, lăsând doar semnul să se schimbe. Computerele vor interpreta apoi acest lucru ca fiind data de 13 decembrie din 1901, și așa mai departe, și nu data reală.
Aceasta poate să nu pară o mare problemă, dar gândiți-vă la toate modurile în care folosim software-ul. Dacă aveți licențe care sunt marcate în timp, ați putea pierde brusc accesul la documente de lucru importante, informații financiare și multe altele.
Problemele nu vor începe să apară doar în 2038, orice software care folosește date viitoare va trebui să fie reparat în curând. Programele care lucrează cu date cu 20 de ani în viitor, cum ar fi fondurile de investiții și programele de programare avansată, trebuiau să fie reparate cel târziu în 2018.
Toate acestea pot părea o rezolvare simplă, doar schimbarea datei de sfârșit a metodei de stocare, dar nu este atât de simplu. Inginerii informaticieni din spatele jocurilor și aplicațiilor care au perioade de așteptare întâmpină deja probleme în codificarea datelor după 19 ianuarie 2038. Deoarece metoda de stocare este Unix pe 32 de biți, este imposibil pentru acești programatori de la terți să codifice date dincolo de acest moment.
ÎNRUDITE: 12 CELE MAI VECHI SITE-URI DIN ANII ’80 ȘI ’90, ÎNCĂ ONLINE ÎN PREZENT
Dar și ce dacă, vă veți întreba. Datele vor fi schimbate, programatorii se așteaptă deja la aceste probleme și orice potențiale probleme nu vor provoca panică, ci doar vor fi rezolvate rapid. Ei bine, acest lucru nu este chiar adevărat.
Sistemele de transport, inclusiv echipamentele de zbor și mașinile moderne, folosesc software încorporat care adesea rămâne neatins. Aproape totul în mașinile moderne este controlat de ECU, sau computerul de bord, care folosește cronometrarea Unix pentru a urmări datele și orele. Aceasta înseamnă că acest bug ar putea întrerupe sistemele de frânare ABS, controalele electronice de stabilitate, controalele de tracțiune și sistemele GPS; toate acestea ar putea fi afectate în mod semnificativ.
Toate aceste sisteme nu vor avea nevoie de acces la date pentru a funcționa, dar unele vor avea nevoie, și este greu de știut care au fost programate cu coduri dependente de date.
Atunci, care este soluția? Nu există una ușoară.
Sistemele încorporate, cum ar fi cele din mașini și electrocasnice, sunt proiectate să reziste pe parcursul ciclului de viață al dispozitivului fără o actualizare a software-ului. Electronicele conectate pot fi reparate rapid cu o actualizare a software-ului atunci când va veni momentul, dar sistemele încorporate sunt cele care vor face probabil cele mai multe ravagii în 2038, deoarece majoritatea nu vor fi actualizate.
O singură opțiune este schimbarea sistemului de stocare a datelor de la un întreg pe 32 de biți la un întreg fără semn pe 32 de biți. Acest lucru ar permite, teoretic, stocarea datelor până în 2106, dar orice sistem care a folosit o dată anterioară anului 1970 ar întâmpina probleme de accesare a acestor date.
Dacă stocarea datelor este crescută la 64 de biți, am întâmpina probleme de stocare a compatibilității între sistemele mai vechi care folosesc doar stocarea datelor pe 32 de biți.
Nu există în prezent o soluție universală la această problemă, și chiar și cele mai larg acceptate remedieri au încă erori în anumite zone de utilizare. Cu toate acestea, există și vești pozitive la final.
Majoritatea echipamentelor electronice noi sunt proiectate pentru a utiliza cea mai nouă metodă de stocare a datelor pe 64 de biți. Un întreg de date atât de mare s-ar întinde de 20 de ori mai mult decât vârsta actuală estimată a universului, aproximativ 292 miliarde de ani la ora 15:30:08 UTC duminică, 4 decembrie 292.277.026.596. Așa că iPhone-ul tău ar putea fi în siguranță până atunci.
Din fericire, această problemă este bine cunoscută și a fost studiată temeinic, ceea ce înseamnă că inginerii informaticieni vor rezolva probabil problemele, cel puțin cu software-ul care este încă actualizat și întreținut. Cu toate acestea, în ceea ce privește acel Prius 1997 în stare perfectă care stă în garajul tău în 2038? Ei bine, s-ar putea să nu-l mai puteți conduce după ora 3:14 AM în ianuarie 2038, datorită computerului său de bord acum defect.