الصفحة الرئيسية > صحيفة الحياة > انتهت مشكلة العام ٢٠٠٠ و«أزمة» السنة الكبيسة لكن العقبات الكومبيوترية لا (…)
الاخطاء البرمجية الشهيرة
انتهت مشكلة العام ٢٠٠٠ و«أزمة» السنة الكبيسة لكن العقبات الكومبيوترية لا تزال في الطريق
الجمعة ٣١ آذار (مارس) ٢٠٠٠, بقلم
لا شك ان عدداً من الناس حول العالم شعر بالخجل صباح الاول من كانون الثاني ٢٠٠٠ خاصة في الولايات المتحدة حيث قام الكثيرون ببيع منازلهم في المدن الكبرى والانتقال الى الجرود والبراري. انهم السبب في زيادة بيع الاسلحة في اميركا بنسبة ٤٠ ٪ في الاشهر الستة الاخيرة من السنة، وهم الذين اشتروا كميات كبيرة من الطعام والماء والمحروقات وخبؤوها في الصحراء معتقدين ان الاول من كانون الثاني ٢٠٠٠ يوم نهاية الحضارة الانسانية وان ما عرف بخطأ العام ٢٠٠٠ (Y2K bug) سيتسبب في ازمة طعام ومحروقات تؤدي الى اعمال شعب على صعيد عالمي.
ولكن هذا الشعور بالخوف لم يقتصر على هؤلاء الناس الذين يطلقون على انفسهم اسم البقائيين (survivalists) بل وصل الى خبراء خطأ العام ٢٠٠٠ الذين توقع معظمهم، في تحقيق جرى في ربيع ١٩٩٩، ازمات اقتصادية ضخمة واعمال شغب واسعة واحكام عرفية وظهور مجاعة كبيرة وانهيار الحكومة الاميركية وانهيار اسعار الاسهم. ولم يتوفع الا ٤ ٪ منهم تأثير محلي وخفيف للخطأ. هذا فضلاً عن المبرمجين ومستشاري الكومبيوتر الذين اكدوا ان اول السنة الجديدة سيكون يوم القيامة.
ولكن اليوم، لا احد يمكنه الجزم بأن هؤلاء الخبراء كانوا على حق ام لا، وهل المبالغ الهائلة التي صرفت على تصحيح الخطأ كانت في محلها ام ذهبت هباءً. وفي كل الاحوال، ان الحديث عن ذلك غير نافع خاصة بعد مرور التاسع والعشرين من شهر شباط دون مشاكل تذكر في اجهزة الكومبيوتر والبرامج. فمن المعروف ان اجهزة الكومبيوتر لا تتعامل احياناً بسلامة مع السنوات الكبيسة، وشكل يوم ٢٩ شباط الماضي آخر امتحان لخطأ العام ٢٠٠٠ لأنه استثناء مضاعف. فالاستثناء الاول هو السنة الكبيسة، اما الاستثناء الثاني فهو ان سنة ٢٠٠٠ كبيسة علماً ان السنوات التي تنتهي بصفرين لا تكون عادة كبيسة (اعتبرت سنة ٢٠٠٠ كبيسة لأنه يمكن قسمتها على ٤٠٠).
ومع ان خطأ العام ٢٠٠٠ لم يتسبب الا بحوادث صغيرة مقارنة بما كان متوقعاً (انظر الاطار)، لا يعني ذلك ان اخطاء كبيرة لم تحدث في الماضي او انها لن تحدث في المستقبل. وهناك مجال واسع لاجهزة الكومبيوتر لكي تخطئ ولكي تخطئ على مستوى كارثي. ومن الصعب العثور على تقنيات اخرى يمكنها التسبب بمشاكل بحجم التي تتسبب بها اجهزة الكومبيوتر.
وبمناسبة مرور خطأ العام ٢٠٠٠ على خير، سنقدم هنا عرضاً لأشهر المشاكل التي سجلها تاريخ الكومبيوتر. ومن الجدير الذكر ان معظم هذه المشاكل كان سببها اخطاء برمجية.
حشرات الكومبيوتر
يعرف مستخدمو الكومبيوتر المرادف الانكليزي لكلمة خطأ برمجي وهو Bug اي حشرة. وتعني هذه الكلمة خطأ ادخله المبرمج عن غير قصد في برنامج ما ويؤدي الى نتائج غير محسوبة (الخطأ الموضوع عن قصد في برنامج ما هو فيروس). والغريب في الامر ان عبارة الحشرة تم اطلاقها للمرة الاولى على خطأ في الاجهزة وليس البرامج. وحدث هذا الخطأ سنة ١٩٤٥ في جامعة هارفارد الاميركية، في احد اجهزة الكومبيوتر الاوائل وهو مارك ٢. فقد حدث خطأ في هذا الجهاز وتم تحديده داخل الدارات الكهربائية. وعندما كشف المهندسون على الجزء المعطل وجودوا فراشة طولها خمسة سنتيمترات حُشرت بين موصلي وحدة ابدال وعطلت عملها. ومنذ هذا اليوم اصبحت عملية الكشف عن الاعطال في هارفارد، تعرف بالبحث عن الحشرات في الدارات الكهربائية، اما اصلاحها فعرفت بعبارة ازالة الحشرات اي debugging.
ومن الغريب في الامر ان اخطاء برامج الكومبيوتر اصبح يطلق عليها اسم حشرة كما لو انها دخلت وحدها الى هذه البرامج كما دخلت الفراشة الى جهاز هارفارد. ففي اول ايام البرمجة، كانت كل البرامج تحتوي على حشرات وكان الشعور العام ان هذا الشيء قدر محتم عليها. اما اليوم، فمع ان الخطأ البرمجي لا يزال يعرف بالحشرة الا انه صار من غير المقبول اتهام القدر بوجوده بل اهمال المبرمج وسهوه.
ولكن قبل الحديث عن الاخطاء البرمجية المشهورة، لا بد من التذكير بأن الاجهزة نفسها يمكن ان تسجل اخطاءً، وليس فقط الاجهزة الاولى الاختبارية بل بعض اول الاجهزة التجارية. فهناك عدد من الاجهزة التجارية الاولى سجل فشلاً ذريعاً. واشهر مثال عن ذلك ما حدث لجهاز ابل ٣ الذي تم طرحه سنة ١٩٨٠. وقامت ابل بتصميم هذا الجهاز على اساس انه سيكون اول كومبيوتر موجه الى الشركات التجارية على عكس الجهازين السابقين ابل ١ و٢ اللذين كانا مخصصين للاستخدام المنزلي ولهواة الالكترونيات. وكان ابل ٣ مزوداً بمعالج ٢٠٥٦ ايه. سرعة ١٫٤ ميغاهيرتز، وكان يدعم ٢٥٦ كيلوبايت من الذاكرة ويحتوي على محرك اقراص مرنة قياس ٥.٢٥ بوصة ويمكنه التزود بقرص ثابت سعة ٥ ميغابايت.
ومع ان هذه المواصفات تبدو مضحكة اليوم الا انها كانت محترمة آنذاك، على الاقل لو عمل الجهاز بشكل سليم. ولكن بدءاً بشريحة التوقيت الحقيقي التي كانت تتعطل بعد ساعات قليلة من عمر الجهاز الى فقدان المكونات الالكترونية التي كان يستخدمها، اتسم ابل ٣ بميزة نادرة وهي ان احتمال اعطاله وصل الى ١٠٠ ٪. ولا نعرف اذا كانت هذه القصة طرفة لم تحدث او ان مهندسي ابل نصحوا فعلاً مستخدمي الجهاز برفعه عن المكتب وخبطه لاعادة تثبيت كل الشرائح في اماكنها.
الحشرة الاولى
ذكرنا ان اول حشرة كومبيوتر كانت فراشة علقت في الجهاز وليست خطأ من الانسان. ولكن ما هي اول حشرة برمجية حقيقية كما نفهمها اليوم؟ من الارجح ان لا احد يعرف، الا انه من الغريب ان قليلين جداً من آباء الكومبيوتر الاولين كانوا يعتبرون ان الخطأ البرمجي هو مشكلة. كانوا يعتقدون بالخطأ في الاجهزة ولكن لم يكونوا يتصورون ان يحدث خطأ في البرمجة لأنها كانت برأيهم عمل كتابي بسيط.
ولكنهم بدأوا يغيرون رأيهم منذ حاول مهندسو كومبيوتر جامعة كامبريدج في بريطانيا (كان اسمه EDSAC وكان بعتبر اول كومبيوتر يمكنه تخزين البرامج) في صيف ١٩٤٩ تشغيل برامج حقيقية عليه بدلاً من البرامج البسيطة المستخدمة لاختباره. وكتبوا برنامجاً يفترض فيه ان يحل معادلة تفاضلية يمكنها وصف مسار الموجات اللاسلكية في الجو. وعندما قاموا بتشغيله للمرة الاولى، لم يعط البرنامج اي نتيجة واكتشفوا انه يحتوي على حوالي ٢٠ خطأ.
حشرات فضائية
رغم صعوبة تحديد اول خطأ برمجي في تاريخ الكومبيوتر، فهناك العديد من الاخطاء الكبيرة والتي اشتهرت في هذا المجال. ويبدو ان اكثر صناعة تأثرت بالاخطاء البرمجية هي صناعة الفضاء.
ولكن، الظاهر ان آخر عطلين واجهتهما وكالة الفضاء الاميركية لم يكونا نتيجة مباشرة لأخطاء برمجية. فمن جهة كان ضياع المركبة المدارية حول المريخ سببه خطأ من الانسان ومن جهة اخرى، لا احد يعرف ما حصل للمركبة التي هبطت على المريخ. على انه مع مرور الزمن اتضح ان الاعطال الناتجة عن اخطاء برمجية في صناعة الفضاء كانت مكلفة جداً. وكان مشروع مارينر ١ الى كوكب الزهرة الذي اطلق من كيب كانافيرال سنة ١٩٦٢، اول محاولة من وكالة الفضاء الاميركية لسبر كوكب آخر. الا ان الصاروخ الحامل للمسبر غير اتجاهه بعيد اطلاقه مما اضطر الوكالة الى تدميره لتجنب وقوعه على مناطق آهلة من الكرة الارضية. واتضح في ما بعد ان العطل كان ناتجاً عن خطأ في سطر من رموز فورتران البرمجية وبالتحديد كان هناك واصلة (hyphen) ناقصة في هذا السطر. وكانت كلفة المركبة ٨٠ مليون دولار مما دفع كاتب الرويات العلمية الشهير ارثر سي. كلارك (مؤلف ٢٠٠١، تجوال الفضاء) الى وصف هذه المهمة بأغلى واصلة في التاريخ.
ويبدو ان الانسان لا يتعلم من اخطائه. وقد يكون التشابه سطحي، الا ان الرجل العادي لاحظ ان ما حصل مع مارينر ١ تكرر سنة ١٩٩٦ مع اول اطلاق لصاروخ اريان ٥ من وكالة الفضاء الاوروبية. فبعد الاطلاق من غويانا الفرنسية بقليل، ادى خطأ في نظام ملاحة الصاروخ الى الاعتقاد ان هذا الاخير خرج عن وجهته. وكان ذلك غير صحيح بالطبع. وحاول نظام التحكم تصحيح الوجهة مما دفع بالصاروخ الى الخروج فعلاً عن وجهته. وبعد ٣٩ ثانية من اطلاقه وبينما كان الصاروخ يبتعد اكثر عن وجهته، تم تشغيل وحدة التدمير الآلية مما حول ٣٦٣ مليون دولار الى خردة. اما سبب الخطأ فكان بتفاهة خطأ مهمة مارينر اذ ان المبرمجين قاموا بتخزين قيمة من ٦٤ بت في عنوان ذاكرة لا يتسع الا لـ١٦ بت من البيانات.
اخطاء بشرية
مما لا شك فيه ان الاخطاء البرمجية يمكن ان تكون مكلفة جداً. ولكن احياناً لا تقتصر كلفة هذه الاخطاء على الخسائر المالية بل تتعداها الى الخسائر البشرية.
وقد يكون احد اشهر الحوادث حصل مع آلة المعالجة بالاشعاع Therac-25. فقد اخطأ البرنامج الذي يتحكم بكميات الاشعاع في عدة مناسبات مما نتج عن حالات تجاوز الكميات المناسبة. وفي حادثة معينة تم اعطاء كميات تتراوح بين ١٥٠٠٠ و٢٠٠٠٠ راد اي مئة مرة اكثر من كمية المعالجة المعروفة واكثر بكثير من الكمية المميتة. وكانت الاصابات متنوعة من فقدان اجزاء من الجسم الى الوفاة في اربع حالات.
وفي حرب الخليج الثانية، فشل النظام الاميركي لتعقب الصواريخ في احدى الحالات وكانت النتيجة ان صاروخ سكود عراقي ضرب تجمع عسكري في الضهران وقتل ٢٨ جندياً اميركياً. ومع ان موت الجنود خلال المعارك هو شيء متوقع الا انه في هذه الحادثة نتج عن خطأ برمجي تسبب بخطأ تعقب قدره ٠٫٣٤ ثانية قطع خلالها صاروخ سكود مسافة كبيرة قبل ان يصل الصاروخ الاميركي.
اما اغرب حادثة ناتجة عن خطأ برمجي وادت الى خسائر بشرية، فهي عائدة الى نظام تم تصميمه لاختيار ارقام رابحة في سحب يانصيب. وقامت شركة ببسي كولا بتنظيم هذا السحب في الفيليبين واعلنت انه سينتج ١٨ مليونيراً. وكانت ارقام السحب مطبوعة داخل سدادات زجاجات الكولا. الا انه بدلاً من طباعة ١٨ رقماً رابحاً ادى الخطأ البرمجي الى طباعة ٨٠٠ الف رقم رابح. واضافة الى الخسائر المادية التي تكبدتها الشركة من جراء ذلك، حدثت اعمال شغب ادت الى مقتل شخص واحد على الاقل.
اخطاء مالية
من حسن الحظ ان الخسائر البشرية الناتجة عن الاخطاء البرمجية ليست كثيرة. فأكبر خسائر سجلت كنتيجة لهذه الاخطاء هي مالية كما سيتضح من الحوادث المشهورة التالية.
سنة ١٩٩٠، ادى خطأ برمجي في نظام التحكم بالمكالمات الهاتفية في شركة ايه.تي. اند تي. الى توقف شبكة اتصالاتها البعيدة مدة تسع ساعات. وكان ذلك اكبر عطل في تاريخ شبكة الهاتف الاميركية ونتج عنه انقطاع الهاتف في اجزاء واسعة من البلاد كما ادى الى عدم التمكن من وصل حوالي ٧٤ مليون اتصال. والغريب في هذا الخطأ انه نتج عن برنامج تم اختباره ملياً كما يبدو. وكان هذا البرنامج للتو قد تم تحديثه لازالة مشكلة صغيرة فيه، ويبدو ان هذا التحديث هو الذي ادخل الخطأ. ومن المعروف ان اختبار البرنامج لدى ادخال اي تحديث عليه هو ممارسة عادية للتأكد من ان التحديث لم يؤثر على اجزاء اخرى من البرنامج كانت تعمل بشكل سليم. ولكنه يبدو ان مهندسي الشركة اعتبروا ان هذا التحديث صغير لدرجة انه لن يوثر على اداء البرنامج العام.
كان من المفترض ان تتزود مدينة دانفر في الولايات المتحدة بمطار جديد في اوائل عام ١٩٩٤. وكان من المفترض ان يكون هذا المطار من احدث ما بني في هذا المجال وتم تزويده بنظام توزيع حقائب السفر يعمل على الكومبيوتر بواسطة ٥٣٠٠ ميل من اسلاك الالياف الضوئية. وتم وضع ٣٠٠ جهاز كومبيوتر للتحكم بهذا النظام الذي كان عليه توزيع حوالي ٤٠٠٠ عربة حقائب على مسافة تبلغ ٢٠ ميلاً. الا ان خطأ في برنامج التحكم ادى الى سحق عدد كبير من الحقائب ودفع العربات نحو الجدران وتوزيع حقائب اخرى على رحلات غير رحلاتها. وتم افتتاح المطار سنة ١٩٩٥ بعد ان بلغت كلفته ٣٫٢ بليون دولار ولكن بنظام توزيع حقائب يدوي رغم دفع مبلغ ٨٠ مليون دولار في محاولة اصلاح الخطأ البرمجي في النظام الآلي.
قد يذكر مستخدمو الكومبيوتر شيوع الاخبار حول الخطأ الذي ظهر في معالجات انتل بنتيوم الاولى لدى اطلاقها سنة ١٩٩٤. وكان هذا الخطأ خطأ برمجياً وعطلاً في الاجهزة في آن. وكان الخطأ بالفعل في الرموز البرمجية الصغيرة في شريحة المعالج، وهي رموز برمجية مهمتها ترجمة اكثر الاوامر تعقيداً. واول من اكتشف الخطأ كان باحث رياضي في جامعة في ولاية فيرجينا. ومع ان الخطأ لم يؤثر الا في عدد قليل من المستخدمين، الا انه حين كان يظهر كان تأثيره عميقاً جداً بحيث يعطي نتائج حسابية خاطئة كلياً. وبالطبع لم تجني انتل من هذا الخطأ الا دعاية سيئة جداً اضافة الى خسائر بلغت ٤٥٠ مليون دولار من جراء استبدال كل المعالجات غير الصالحة.
خطأ عام ٢٠٠٠ حول العالم
– في الولايات المتحدة، فقدت محطات وزارة الدفاع البيانات الآتية من اقمار التجسس الصناعية.
– في ١٠ كانون الثاني، كشف تحقيق ان ٣٠ ٪ من الذين شملهم في الولايات المتحدة واجهوا مشاكل عائدة الى الخطأ.
– في اليونان تأثر ثلث صناديق النقود البالغ عددها ٣٨٠٠٠٠ مما حدى بالتجار للعودة الى القلم والورقة.
– في هونغ كونغ تعطلت الاجهزة الالكترونية لقياس نسبة الكحول لدى السائقين.
– في غامبيا تعطلت انظمة المعلوماتية الحكومية.
– في ميونيخ تم بيع ٤٩٥ تذكرة في مواقف السيارات عليها تاريخ ١١ كانون الثاني ١٩٠٠ فجاءت الفواتير ببدل عن ١٠٠ عام توقف.
– في طوكيو توقفت اجهزة توزيع النقود في ١٣ محطة قطار.
– في محطة التوليد النووية شيكا في اليابان قام الكومبيوتر الذي يجمع بيانات جهاز مراقبة التسرب باطلاق صفارات الانذار دون سبب.
– في اسبانيا سجلت اعطال في اثنين من المحركات النووية التسعة.
– في ولاية ويسكونسين الاميركية توقفت محطة توليد الكهرباء عن العمل.
– في موسكو توقف البريد الالكتروني العائد الى قسم العلاقات العامة في الكرملين.
– في ناميبيا لم يعد من الممكن اصدار بطاقات هوية خلال كانون الثاني.
