المعلوماتية > عام
خمسة أخطاء برمجية غَفِل عنها التاريخ!
مع انتشار الكثير من البرمجيات في عصرنا الرقمي هذا، وعلى الرغم من إجراء عمليات الاختبار اللازمة عليها قبل نشرها إلا أنها قد تحتوي على أخطاء برمجية مسببةً أضراراً مختلفة، فمن منا لم يواجه رسائل خطأ من أنظمة التشغيل على سبيل المثال لا الحصر! لكن هناك خمسة أخطاء برمجية غير معروفة قد غفل عنها التاريخ، تابعوها معنا في هذا المقال.
1- أم كل الأخطاء البرمجية:
وهو أول خطأ برمجي في التاريخ. ففي عام 1947، صُمم الحاسوب الإلكتروميكانيكي (Harvard Mark II) من قِبل جامعة هارفارد وفي العام نفسه في التاسع من أيلول الساعة 3:45 PM، وبينما كان الحاسوبُ يخضعُ لاختبارات في جامعة هارفارد وُجدت فراشة داخل وحدة ميكانيكية فيه تسببت بعطل، قامت بعدئذ عالمة الحاسوب "Grace Hopper" بتسجيل هذا الخطأ مع لصق الفراشة في سجل الأخطاء وكتب تحتها: "أول حالة فعلية لحشرة يتم إيجادها." (انظر الصورة أدناه).
في الوقت الحاضر، دلالةُ كلمة (bug) في علوم الحاسوب لا تُؤخذ حرفياً (أي حشرة)، وإنما أصبحت تدلُّ على وجود خللٍ أو فشل في برنامج حاسوبي الذي يؤدي إلى نتائجَ غير متوقعة أو إلى عطل.
2- خطأ الألفية (Year 2000 bug):
كان مطورو البرمجيات يعتقدون في القرن الماضي أن تعليماتِهم البرمجيةَ ستبقى تعملُ بشكل صحيح حتى بعد الألفية الجديدة (أي بداية القرن الحادي والعشرين)، ولهذا السبب افترض الكثيرون أن كتابة الرقم "19" ضمن متغير التاريخ هو هدر للذاكرة وقيمة فائضة لا داعي لها فقرروا حذف هاتين الخانتين، فمثلاً عام "1986" يُعبر عنه بأول خانتين فقط "86".
مضى ذلك على نحو جيد حتى مطلع القرن الجديد، فكلما اقترب الحادي والثلاثون من كانون الأول 1999 كلما زاد القلقُ حول أن أجهزة الحاسوب في رأس السنة ستقوم بتحديث ساعاتها لتشير إلى الأول من كانون الثاني 1900! وأن ذلك سيُسبب كوراثَ كُبرى حول العالم وسيكون نهاية للبشرية. فمن منا لا يتذكر الروايات اللي قيلت حول ذلك.
وها نحن اليوم مازلنا نقول أن الصواريخ النووية لم تُطلق من تلقاء نفسها وأن الطائرات لم تهوي من السماء وأن البنوك لم تفقد معلومات زبائنها، لكن رغم ذلك فخطأ الألفية البرمجي كان حقيقياً، فقد أُنفقت المليارات من الدولارات من أجل ترقية أجهزة الحاسوب حول العالم. ولكن هذه الإجراءات لم تمنع وقوعَ بعض الحوادث الصغيرة، ففي أسبانيا تعطلت عداداتُ المواقف وفي أستراليا تعطلت بعضُ أجهزة فحص تذاكر الباصات وفي فرنسا في صبيحة الألفية الجديدة نشر معهد الأرصاد الجوية على موقعه الإلكتروني أن الطقس 1 كانون الثاني 19100.
3- حادثة صاروخ الظهران:
خلال حرب الخليج الأولى عام 1991، ضرب صاروخٌ عراقي القاعدةَ الأمريكية في مدينة الظهران السعودية مُسبباً مقتل 28 جندياً أمريكياً. بعد التحقيق في الحادثة، تبين أن النظامَ المضاد للصواريخ الباليستية (باتريوت) قد فشل في إطلاق صورايخه نظراً لوجود خطأ برمجي في حاسوبه، حيث كان يتم تشغيلُ هذا النظام 100 ساعة متواصلة، ومع كل ساعة تمضي يحصل تأخيرٌ في الساعة الداخلية للنظام بمقدار 1 ميلي ثانية، فبعد 100 ساعة متواصلة كان الانحرافُ في الساعة الداخلية حوالي ثلثَ ثانية، والتي هي بالنسبة لأي شخص قيمة متناهية في الصغر، لكنها مهمة بالنسبة لرادار يقوم بتتبع الصواريخ العراقية التي تصل سرعتها إلى 4.2 ماخ (1.5 كم/ثانية). هذا الخطأ البرمجي تُرجم في حادثة الظهران انزياحاً في الموقع المتوقع للصاروخ بمقدار 600 متر! حيث تمكن الرادارُ في البداية من رصد وجود جسم غريب في الجو، لكنه فيما بعد فشل في تتبعه فلم تُطلق الصواريخ المضادة من تلقاء نفسها.
4- قدم أم متر؟! الخطأ الملاحي البرمجي للقمر الصناعي (Mars Climate Orbiter):
أُطلق هذا القمر في عام 1998 من أجل تتبع مناخِ المريخ، لكنه فشل في إنجاز مهمته. فبعد عدة أشهر من السفر في الفضاء تحطّمَ المسبار بسبب خطأ في الملاحة، حيث تحكمت الفرقُ العلمية من الأرض بالمسبار باستخدام معاملات بوحدات القياس الإمبراطورية (القدم)، في حين كانت الحساباتُ البرمجية تستخدمُ النظام المتري (متر). كان لهذه الحسابات الخاطئة تأثير على مسار الرحلة، ففي النهاية تحطم المسبار بسبب الاحتكاك مع الغلاف الجوي للمريخ (قُدرالخطأ بحوالي 100 كم).
5- أرقام كثيرة جداً لصاروخ آريان-5:
عند البرمجة، يقوم المطور بتعريف عدة متحولات أو متغيرات سيستخدمها البرنامج، كما يُحدد حجمَ هذه المتغيرات المحجوز في ذاكرة الحاسوب. إن حجم الذاكرة اللازم لكل متغير يُحدد بالبتات، فمثلاً متغير بـ16 بت يُمكن له أن يُخزن قيماً بين −32768 و32768. وعلى هذا النحو، متغير بـ64 بت يُمكن له أن يُخون قيماً بين 9.223.372.036.854.775.807- و9.223.372.036.854.775.807.
في الرابع من حزيران من عام 1996، وبعد 30 ثانية فقط على الإقلاع، بدأ صاروخ آريان-5 يتفككُ ببطءٍ حتى الانفجار النهائي. كشفت لاحقاً محاكاةٌ لنظام رحلة مماثل وبشروط برمجيات الصاروخ آريان-5 نفسِها أن هناك متغيراً طوله 64 بت مع كسور عشرية قد تم تحويلُه إلى متغير بـ16 بت بدون كسور عشرية. هذه المتغيرات حجزت أحجامًا مختلفة من الذاكرة قادت إلى سلسلةٍ من الأخطاء البرمجية التي أثرت على كل أجهزة الكمبيوتر مسببة شللاً للصاروخ أدى إلى تدميره.
وفي نهاية المقال من منا متابعينا لم يُصادف خطأ الشاشة الزرقاء الشهير في نظام ويندوز! تفضلوا بمشاهدة الفيديو أدناه لهذا الخطأ أثناء تقديم نظام ويندوز 98 بوجود «بيل غيتس»:
المصدر: