مشكلة عام 2038 !!

لقد مضى الآن قرابة الخمس عشر سنة على مشكلة عام 2000 أو ما تسمى Y2K والتي كان السبب فيها هو خانات التاريخ في المتغيرات لبعض البرامج، حيث كانت تلك البرامج تحجز خانتين فقط للتاريخ بحيث لو تغير التاريخ من عام 1999 إلى 2000 فالنظام سيمثل عام 2000 بخانتين فقط أي 00 وهنا تكمن المشكلة فالنظام لايعرف هل 00 تعني عام 2000 أو 1900.

والآن ستظهر لنا مشكلة شبيهة بمشكلة عام 2000. و تسمى مشكلة عام 2038 و الفكرة التي تدور وراء هذه المشكلة أن الأنظمة التي تستخدم مكتبة POSIX للوقت تمثل الوقت بالثواني ابتداء من عام 1970، وهذا متعارف عليه في الأنظمة التي تعتمد على اليونكس والمبنية على لغة السي. حيث أن حجم المكان الذي يخزن فيها الثواني هو 32 بت بعلامة. يعني ذلك أن مخزن العداد للوقت سيظهر التاريخ صحيح حتى تاريخ 19 يناير 2038 بعدها سينقلب العداد ليمثل التاريخ بالسالب أي قد يمثل السنة كعام 1970 مرة أخرى.

هناك حلول مطروحة ولكنها صعبة ومن أفضلها تغيير المعالجات القديمة والتي تعتمد على 32 بت بمعالجات 64 بت حتى تصبح خانة تمثيل الوقت أكبر وأيضا قد خُصص موقع على الإنترنت للتوعية بمخاطر هذه المشكلة.

عنوان الموقع

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مشكور على الموضوع الرائع

طبعاً كلنا منعرف شو صار بعام ال2000 و خلفت بعض المشاكل

ولكن اعتقد ان الموضوع يستحيل تكراره في عام 2038 !

ربما لا نستخدم الحواسيب أبداً في 2030

في الحقيقة مشكلة عام 2000 لم تحدث بالصورة التي تخيلها الناس، لم تتوقف برامج كثيرة عن العمل ولم تنقطع الكهرباء كما توقع البعض.

كُنت اعمل حينها في شركة اتصالات حيث توقف برنامج واحد عن العمل كان يحسب فواتير المقاسم الطرفية، قمت بإضافة القيمة مائة للتاريخ وتم حل المشكلة، حيث كانت السنة تُمثّل بعددين فقط، فبعد 99 اصبح التاريخ 00، لكن قلت لهم أن هذه المشكلة سوف تتكرر بعد مائة عام. لكن لم تمضي أعوام بسيطة حتى تخلصت الشركة من تلك المقاسم الصغيرة.

ايضاً توقف احد البرامج المعتمدة على Foxpro وتم إصلاحه.

أتوقع قبل الوصول إلى عام 2038 أن يتم استبدال معظم اﻷجهزة القديمة واﻷنظمة القديمة، حتى إذا حدثت مشكلة يمكن علاجها حينها كما حدث في عام 2000

لا ندري فربما بعد 23 عام من الآن يكون جيل الحواسيب هذا قد انقرض ツ

سمعت عنها من قبل في بودكاست أصفار

ولكن السؤال هو لماذا 1970 بدأ العد لماذا لم يبدأ من 1980 مثلا ؟

عذرا لم أفهم شيئًا هل لك أن تشرحها لي بالعربية ؟

باختصار: الأمر راجع إلى أيام نظام UNIX الأولى (سبعينيات القرن الماضي)، حيث كانت هناك حاجة إلى تحديد "تاريخ الصّفر" وحُدّد بداية بتاريخ 1971-1-1. وبعد أن حُلت بعض المشاكل التقنية المُتعلّقة بحساب الوقت، قاموا بجعل "التّاريخ الصفر" بداية العُشرية بدل 1971-1-1 ولهذا أصبح التّاريخ الصفر هو 1970-1-1

وهذا التاريخ لا يمكن تعديله أليس كذلك ؟

مع التطور الهائل في الحواسيب اعتقد انه سوف يجدوا الحل بسهولة

عن طريق استبدال المعالجات القديمة

الحمد لله جهازي 64 بت :)

الرجاء التوقف عن نقل المواضيع من الأماكن الأخرى كان من الأفضل وضع الموضوع كرابط بدل النسخ واللصق.