9/8/2014, 00:31 αναρτήθηκε.
[Πρέπει να είστε εγγεγραμμένοι και συνδεδεμένοι για να δείτε αυτή την εικόνα.]
Το έτος 2038 και συγκεκριμένα στις 19/1/2038 και ώρα 3:14:07 UTC, τα 32-bit unix συστήματα, θα "ταξιδέψουν στο χρόνο" και θα γυρίσουν στο 1901! Με το να ταξιδέψουν στο χρόνο ενοούμε ότι η ημερομηνία του συστήματος θα αλλάξει, αλλοιώνοντας τα δεδομένα και προκαλώντας μεγάλες βλάβες στα unix συστήματα. Αν και το πρόβλημα είναι παρόμοιο με το Y2K, είναι ευκολότερο να λυθεί μεν, αλλά προκαλεί πιο πολλές ζημιές δε.
Γιατί, όμως θα συμβεί αυτό; Πολλά Unix-based λειτουργικά αποθηκεύουν το χρόνο σε έναν 32-bit αριθμό στο σύστημα. Ο αριθμός αυτός λειτουργεί σαν χρονόμετρο και έχει ξεκινήσει από την Πέμπτη, 1η Ιανουαρίου του 1970, στις 0:00:00. Αυτή η ημερομηνία, λοιπόν είναι "η αρχή του χρόνου" και γι'αυτό η τιμή του ορίζεται ως 00000000 00000000 00000000 00000000. Στις 3:14:07 της 19ης Ιανουαρίου 2038, έχουν περάσει 2.147.483.647 δευτερόλεπτα από την ημερομηνία του 1970. Ο αριθμός αυτός, στο δυαδικό σύστημα εκφράζεται ως :
01111111 11111111 11111111 11111111.
Ένα δευτερόλεπτο αργότερα, ο δυαδικός γίνεται:
10000000 00000000 00000000 00000000
Αυτός ο αριθμόςέχει την τιμή 2.147.483.647. Αφού λοιπόν εξαντλήθηκαν τα bits, ο αριθμός γίνεται αντίθετος καθώς στο δυδικό σύστημα το 1 είναι αρνητικός και το 0 θετικός και άρα μετράει αντίστροφα (-2.147.483.647-0).
Το πρόβλημα δε θα το έχουν οι υπολογιστές, αφού οι περισσότεροι είναι 64-bit, αλλά τα κινητά και οι ενσωματωμένες συσκευές σε αυτοκίνητα, αεροπλάνα κ.λπ. οι οποίες χρησιμοποιούν από 8-32-bit.
Περισσότερες πληροφορίες για το bug, μπορείτε να δείτε εδώ:
Γιατί, όμως θα συμβεί αυτό; Πολλά Unix-based λειτουργικά αποθηκεύουν το χρόνο σε έναν 32-bit αριθμό στο σύστημα. Ο αριθμός αυτός λειτουργεί σαν χρονόμετρο και έχει ξεκινήσει από την Πέμπτη, 1η Ιανουαρίου του 1970, στις 0:00:00. Αυτή η ημερομηνία, λοιπόν είναι "η αρχή του χρόνου" και γι'αυτό η τιμή του ορίζεται ως 00000000 00000000 00000000 00000000. Στις 3:14:07 της 19ης Ιανουαρίου 2038, έχουν περάσει 2.147.483.647 δευτερόλεπτα από την ημερομηνία του 1970. Ο αριθμός αυτός, στο δυαδικό σύστημα εκφράζεται ως :
01111111 11111111 11111111 11111111.
Ένα δευτερόλεπτο αργότερα, ο δυαδικός γίνεται:
10000000 00000000 00000000 00000000
Αυτός ο αριθμόςέχει την τιμή 2.147.483.647. Αφού λοιπόν εξαντλήθηκαν τα bits, ο αριθμός γίνεται αντίθετος καθώς στο δυδικό σύστημα το 1 είναι αρνητικός και το 0 θετικός και άρα μετράει αντίστροφα (-2.147.483.647-0).
Το πρόβλημα δε θα το έχουν οι υπολογιστές, αφού οι περισσότεροι είναι 64-bit, αλλά τα κινητά και οι ενσωματωμένες συσκευές σε αυτοκίνητα, αεροπλάνα κ.λπ. οι οποίες χρησιμοποιούν από 8-32-bit.
Περισσότερες πληροφορίες για το bug, μπορείτε να δείτε εδώ:
- Κώδικας:
http://2038bug.com/
- Κώδικας:
http://en.wikipedia.org/wiki/Year_2038_problem
Source: [Πρέπει να είστε εγγεγραμμένοι και συνδεδεμένοι για να δείτε αυτόν το σύνδεσμο.]