تُعد "مشكلة Unix 32 بت"، والمعروفة على نطاق واسع في مجتمعات الأمن السيبراني والتطوير باسم مشكلة عام 2038، أو خطأ ألفية Unix، أو Y2K38، ثغرة برمجية حرجة تؤثر على أنظمة الكمبيوتر التي تخزن الطوابع الزمنية لـ Unix باستخدام أعداد صحيحة موقعة 32 بت.
القيود
أحد القيود الأساسية لوقت Unix هو أن كل يوم يتكون بالضبط من 86,400 ثانية. هذا يعني أن الثواني الكبيسة تشترك في نفس الطابع الزمني لـ Unix بالضبط مثل الثانية التي تسبقها مباشرة؛ لذلك، لا يمثل وقت Unix التوقيت العالمي المنسق بدقة علمية مطلقة. ومع ذلك، فإن القيد الأكثر إلحاحاً هو التدفق الزائد الوشيك للعدد الصحيح 32 بت. يتطلب عنق الزجاجة المعماري هذا ترحيل ملايين التطبيقات بسرعة إلى أنظمة 64 بت أو اعتماد اصطلاحات طوابع زمنية جديدة للاستمرار في العمل بأمان. بالإضافة إلى ذلك، يجب التعامل مع أي طابع زمني يسبق عام 1970 بعناية في ذاكرة النظام، لأنه يحسب عدد الثواني حتى حقبة 1970 كعدد صحيح سالب.
ماذا يحدث في 19 يناير 2038؟
في 19 يناير 2038، سيتوقف الطابع الزمني القياسي لـ Unix عن العمل بشكل كارثي على أنظمة 32 بت القديمة بسبب التدفق الزائد الهائل للعدد الصحيح. لمنع الفشل المنهجي، يجب ترحيل التطبيقات والخوادم والأجهزة المضمنة المعرضة للخطر إلى بيئات تشغيل 64 بت قبل هذه اللحظة الدقيقة، مما سيؤمن معالجة الطوابع الزمنية لمليارات السنين في المستقبل.
ما هي مشكلة Unix 32 بت؟
في أنظمة الحوسبة 32 بت، يتم تخزين قيمة الوقت تحديداً كعدد صحيح موقع 32 بت، والذي تبلغ سعته الرقمية القصوى 2,147,483,647 (2^31 - 1). عندما تستخدم الأنظمة القديمة هذه القيمة الصحيحة المحددة لحساب مرور الوقت، فإنها ستفيض بدقة بعد 03:14:07 UTC في 19 يناير 2038. في هذه النقطة بالضبط، ستنقلب الأنظمة التي تستخدم تخصيص time_t 32 بت، وتطلق بت الإشارة، وتفسر الثانية التالية على أنها رقم سالب عميق. وبالتالي، سيقرأ الكمبيوتر التاريخ الحالي على أنه 13 ديسمبر 1901. يمكن أن يتسبب هذا الخلل المشابه لـ Y2K في إساءة تصرف البرامج المعقدة، أو إتلاف قواعد البيانات الحرجة، أو تعطل أنظمة الأجهزة تماماً.
ما هي مشكلة عام 2038
مشكلة عام 2038 هي في جوهرها إعادة التعيين الحتمية للأعداد الصحيحة الموقعة 32 بت الفائضة المستخدمة لحساب ثواني Unix. بمجرد وصول قيمة التخزين القصوى إلى حدها الأقصى في 19 يناير 2038، ستسيء الأنظمة تفسير التاريخ على أنه 13 ديسمبر 1901. تؤثر هذه الثغرة الأمنية الأساسية بشدة على أنظمة التشغيل القديمة، وقواعد بيانات SQL، والبنية التحتية المالية، والأجهزة الذكية، مما قد يتسبب في أعطال شديدة في وقت التشغيل وفقدان بيانات لا يمكن عكسه.