Στις 03:14:07 ώρα UTC της 19ης Ιανουαρίου 2038, ένας αριθμός που μετρά δευτερόλεπτα από το 1970 θα φτάσει στη μέγιστη τιμή που χωρά σε 32 bit. Το επόμενο δευτερόλεπτο, ορισμένα συστήματα δεν θα προχωρήσουν στο 2038. Θα «γυρίσουν» στον Δεκέμβριο του 1901. Οι μηχανικοί λογισμικού το λένε «πρόβλημα του 2038» ή Y2K38, και δεν είναι θεωρία συνωμοσίας: πρόκειται για ένα γνωστό, μετρήσιμο όριο, που η βιομηχανία προσπαθεί εδώ και χρόνια να εξαλείψει.
Πώς μετρά ο υπολογιστής την ώρα
Τα συστήματα που βασίζονται στο Unix, δηλαδή πολλά λειτουργικά συστήματα, διακομιστές, Linux, Android και πολλές ενσωματωμένες συσκευές, δεν αποθηκεύουν την ημερομηνία ως «19 Ιανουαρίου». Κρατούν έναν απλό αριθμό: πόσα δευτερόλεπτα έχουν περάσει από τα μεσάνυχτα της 1ης Ιανουαρίου 1970. Η τιμή αυτή ονομάζεται χρόνος Unix.
Για δεκαετίες, ο αριθμός αυτός αποθηκευόταν σε έναν προσημασμένο ακέραιο των 32 bit. Ο μεγαλύτερος αριθμός που χωρά εκεί είναι το 2.147.483.647, δηλαδή περίπου 68 χρόνια σε δευτερόλεπτα. Όταν προστεθεί ένα ακόμη δευτερόλεπτο, η τιμή υπερχειλίζει και γίνεται αρνητική. Το σύστημα τότε ερμηνεύει την ώρα ως 20:45:52 UTC της 13ης Δεκεμβρίου 1901.
Τι μπορεί να πάει στραβά
Ένας υπολογιστής που «πιστεύει» ότι βρίσκεται στο 1901 μπορεί να απορρίψει έγκυρα ψηφιακά πιστοποιητικά, να υπολογίσει λάθος λήξεις συμβολαίων και δανείων, να μπερδέψει τη σειρά των καταγραφών ή απλώς να σταματήσει να λειτουργεί. Το πρόβλημα δεν περιμένει απαραίτητα το 2038: οποιοδήποτε πρόγραμμα χρησιμοποιεί σήμερα 32-bit χρόνο και υπολογίζει ημερομηνίες μετά το 2038, για παράδειγμα ένα δάνειο τριακονταετίας, μπορεί να συναντήσει το όριο από τώρα.
Γιατί δεν είναι ένα νέο Y2K
Η μεγάλη διαφορά από το «πρόβλημα του 2000» είναι ότι η λύση είναι γνωστή και απλή στη θεωρία: ο χρόνος αποθηκεύεται σε 64 bit. Με αυτόν τον τρόπο, το θεωρητικό όριο μετακινείται περίπου 292 δισεκατομμύρια χρόνια στο μέλλον.
Ωστόσο, το γεγονός ότι ένας υπολογιστής διαθέτει επεξεργαστή 64 bit δεν σημαίνει αυτομάτως ότι κάθε πρόγραμμα που εκτελεί χρησιμοποιεί και 64-bit χρόνο. Εξαρτάται από το λειτουργικό σύστημα, τις βιβλιοθήκες, το ABI και τον τρόπο με τον οποίο έχει γραφτεί το λογισμικό.
Η μεγάλη αλλαγή στο Linux και τη Debian
Η έκδοση Linux 5.6, που κυκλοφόρησε το 2020, αποτέλεσε σημαντικό ορόσημο για την υποστήριξη των 64-bit time system calls σε 32-bit αρχιτεκτονικές και για την αντιμετώπιση του προβλήματος του 2038. Η μετάβαση, όμως, δεν ήταν μια απλή αλλαγή ενός μετρητή: χρειάστηκαν ευρύτερες αλλαγές στον πυρήνα, στις βιβλιοθήκες και στο λογισμικό.
Η Debian 13, που κυκλοφόρησε το 2025, ολοκλήρωσε μια ιδιαίτερα μεγάλη μετάβαση: όλες οι αρχιτεκτονικές της εκτός από την i386 χρησιμοποιούν πλέον 64-bit time_t. Η αλλαγή επηρέασε περισσότερα από 1.200 πακέτα βιβλιοθηκών και αποτέλεσε, σύμφωνα με τους Debian developers, τη μεγαλύτερη cross-archive ABI transition που είχε πραγματοποιήσει μέχρι τότε η διανομή.
Ποιους αφορά στην πράξη
Ο κίνδυνος συγκεντρώνεται στις ενσωματωμένες συσκευές: βιομηχανικούς ελεγκτές, παλιά routers, συστήματα σε αυτοκίνητα και κτίρια, ιατρικά μηχανήματα, συσκευές που τοποθετούνται μία φορά και λειτουργούν για δεκαετίες χωρίς ενημερώσεις.
Αφορά επίσης παλιές βάσεις δεδομένων και αρχεία που αποθηκεύουν ημερομηνίες σε πεδία των 32 bit, ανεξάρτητα από το πόσο σύγχρονος είναι ο υπολογιστής που τα διαβάζει.
Για τον μέσο χρήστη, ένα σύγχρονο κινητό ή laptop δεν αποτελεί από μόνο του λόγο ανησυχίας. Για επιχειρήσεις και φορείς, όμως, το μήνυμα των ειδικών είναι ότι το 2038 πρέπει να μπει στον έλεγχο των συστημάτων από τώρα, όσο υπάρχει ακόμη χρόνος να εντοπιστεί και να αντικατασταθεί ό,τι δεν ενημερώνεται.
